2009-11-06 11 views

Odpowiedz

9

Możesz wydostać się z pudełka o nazwie entity chunking za pomocą metody nltk.ne_chunk(). Zajmuje się lista POS oznaczonych krotki:

nltk.ne_chunk([('Barack', 'NNP'), ('Obama', 'NNP'), ('lives', 'NNS'), ('in', 'IN'), ('Washington', 'NNP')])

wyniki w:

Tree('S', [Tree('PERSON', [('Barack', 'NNP')]), Tree('ORGANIZATION', [('Obama', 'NNP')]), ('lives', 'NNS'), ('in', 'IN'), Tree('GPE', [('Washington', 'NNP')])])

identyfikuje Barack jako osoby, ale Obama jako organizacja. Więc nie jest doskonały.

+1

Co, jeśli nie jestem bardzo zaniepokojony named_entities, ale ogólnie w ogóle. Na przykład "żółty pies" to porcja, a "działa" to porcja. – TIMEX

+0

Tak, nie ma domyślnie mojej wiedzy (choć nie wiem wszystkiego o nltk, na pewno). Możesz użyć RegexpChunkParser, ale będziesz musiał sam opracować zasady. Oto przykład: http://gnosis.cx/publish/programming/charming_python_b18.txt – ealdent

8

Nie można znaleźć domyślnego fragmentu/płytkiego parsera. Chociaż książka opisuje, jak zbudować i wyszkolić jedną z przykładowych funkcji. Wymyślanie dodatkowych funkcji w celu uzyskania dobrej wydajności nie powinno być zbyt trudne.

Zobacz rozdział 7 na temat Training Classifier-based Chunkers.

Powiązane problemy