2015-03-19 95 views
0

是否有標記器可以在任何可能的上下文中爲單詞返回單個標記?NLTK中單個單詞的標記器

我的要求是我需要從非結構化文本中提取單詞,其中句子不會有結構化語法。

POS標記符意味着使用句子,並會根據該句子中單詞的上下文返回一個單詞的標記。所以,我不得不使用另一個標籤,每次給我一個特定的單詞相同的標籤,或者在分塊時爲一個單詞使用所有可能的標籤。

任何其他解決方案將不勝感激。另外,如何查看可以分配給特定單詞的所有標籤?

回答

1

請參見:http://www.nltk.org/_modules/nltk/tag.html

特別是:

>>> from nltk.corpus import brown 
>>> from nltk.tag import UnigramTagger 
>>> tagger = UnigramTagger(brown.tagged_sents(categories='news')[:500]) 
>>> sent = ['Mitchell', 'decried', 'the', 'high', 'rate', 'of', 'unemployment'] 
>>> for word, tag in tagger.tag(sent): 
...  print(word, '->', tag) 
Mitchell -> NP 
decried -> None 
the -> AT 
high -> JJ 
rate -> NN 
of -> IN 
unemployment -> None 

的UnigramTagger的想法是,它總是分配,這是在訓練語料庫中特定的詞最顯着的標籤。或(剛好在上面的文檔的代碼段:

這個包定義了幾個標註器,它取一個令牌列表(通常是 句子),指定一個標記來每個令牌,並返回得到的 列表。標記記號大多標註器的內置自動根據 訓練語料庫例如,單字組惡搞通過檢查什麼瓦特最常見的標籤是在訓練語料庫標記每個字瓦特

不確定是否有內置的方式查看可以分配給特定單詞的所有標籤。此外;這在理論上可以與標識的總數一樣長,因爲它取決於上下文。 如果你想得到一個想法,我會做的只是標記您的整個詞彙表並打印出您的詞彙表,並在該特定語料庫中分配所有不同的標籤。