2013-06-04 13 views
5

Tak więc zastanawiałem się, czy ktoś nie ma pojęcia, jak połączyć wiele terminów, aby utworzyć pojedynczy termin w taggerach w NLTK..Jak dodać wyrazy złożone do taggera w NLTK?

Na przykład, kiedy zrobić:

nltk.pos_tag(nltk.word_tokenize('Apple Incorporated is the largest company')) 

Daje mi:

[('Apple', 'NNP'), ('Incorporated', 'NNP'), ('is', 'VBZ'), ('the', 'DT'), ('largest', 'JJS'), ('company', 'NN')] 

Jak zrobić to umieścić 'jabłko' i 'Włączone' Wspólnie się ('Apple Incorporated','NNP')

+1

potrzebujesz kawałka/parsera, a następnie połączyć kawałki/frazy za pomocą '_', a następnie spłaszcz strukturę ponownie w krotkach. – alvas

Odpowiedz

0

Możesz spróbować spojrzeć na nltk.RegexParser. Pozwala na dzielenie części treści oznaczonych jako mowy na podstawie wyrażeń regularnych. W przykładzie, można zrobić coś takiego

pattern = "NP:{<NN|NNP|NNS|NNPS>+}" 
c = nltk.RegexpParser(p) 
t = c.parse(nltk.pos_tag(nltk.word_tokenize("Apple Incorporated is the largest company"))) 
print t 

To daje:

Tree('S', [Tree('NP', [('Apple', 'NNP'), ('Incorporated', 'NNP')]), ('is', 'VBZ'), ('the', 'DT'), ('largest', 'JJS'), Tree('NP', [('company', 'NN')])]) 
0

Kod robi dokładnie to, co ma robić. Dodaje znaczniki Part of Speech do tokenów. "Apple Incorporated" nie jest pojedynczym tokenem. Jest to dwa oddzielne tokeny i jako taki nie może mieć zastosowanego do niego pojedynczego znacznika POS. To jest prawidłowe zachowanie.

Zastanawiam się, czy próbujesz użyć niewłaściwego narzędzia do pracy. Co próbujesz zrobić/Dlaczego próbujesz to zrobić? Być może jesteś zainteresowany identyfikowaniem kolokacji zamiast tagowania POS? Możesz zajrzeć tutaj: collocations module

+0

Próbuję utworzyć program, który przyjmuje każdy typ słowa i wykonuje na nim funkcję na tekście. Na przykład, jeśli znacznikiem jest "Corp", wykonaj określoną funkcję. Myślałem, że mogę wymienić znaczniki i jakoś to zrobić ręcznie, biorąc pod uwagę, że nie jestem pewien, jak to zrobić z nltk, ale nie wiem, jak bym to zrobił! Zasadniczo rozpoznaje rodzaj słowa i wykonuje na nim funkcję. Jakaś pomoc? – user2403500

+0

Rozumiem, że jest to normalna procedura, ale zastanawiałem się, czy wiesz, jak mogę wymienić ("Apple," NNP "), (" Korporacja "," NNP ") na (" Apple Corporation "," Corp ") jeśli "Apple Corporation" w Spółkach. – user2403500