词性标注 – 除了语法关系,句中单词的位置(词性)标记也蕴含着信息,词的位置定义了它的用途和功能。宾夕法尼亚大学提供了一个完整的位置标记列表。下方代码则使用了NLTK库来对输入的文本进行词性标注。
from nltk import word_tokenize, pos_tag
text = "I am learning Natural Language Processing on Analytics Vidhya"
tokens = word_tokenize(text)
print pos_tag(tokens)
>>> [('I', 'PRP'), ('am', 'VBP'), ('learning', 'VBG'), ('Natural',
'NNP'),('Language', 'NNP'),('Processing', 'NNP'), ('on', 'IN'),
('Analytics', 'NNP'),('Vidhya', 'NNP')]
在NLP中,词性标注有个很多重要用途:
A.消除歧义: 一些词的不同用法代表不同的意思. 如下列两句:
I. “Please book my flight for Delhi”
II. “I am going to read this book in the flight”
“Book” 在这里代表不同的意义, 好在它在两句的位置也不同. 第一句“book”是的动词, 第二句中它是个名词。 (Lesk Algorithm也被用于类似目的)
B.强化基于单词的特征: 一个机器学习模型可以从一个词的很多方面提取信息,但如果一个词已经标注了词性,那么它作为特征就能提供更精准的信息。 例如:
句子 -“book my flight, I will read this book”
单词 – (“book”, 2), (“my”, 1), (“flight”, 1), (“I”, 1), (“will”, 1), (“read”, 1), (“this”, 1)
带标注的单词 – (“book_VB”, 1), (“my_PRP$”, 1), (“flight_NN”, 1), (“I_PRP”, 1), (“will_MD”, 1), (“read_VB”, 1), (“this_DT”, 1), (“book_NN”, 1)
译者注:如果不带词性标注,两个“book”就被认为是同义词,词频为2。这会在后续分析中引入误差。
C.标准化与词形还原: 位置标注是词形还原的基础步骤之一,可以帮助把单词还原为基本形式.
D.有效移除停用词 : 利用位置标记可以有效地去除停用词。