我是自然语言处理的新手。
目前我正在研究一个语料库并尝试使用添加一个平滑实现bigram模型..
根据Add-one Smoothing方法
这里V是语料库的词汇,即语料库中词类型的总数。 但在计算单词类型时,我正在考虑同一词干中的单词。即计数时,猫和猫将是相同的。
我想知道是否有任何方法或算法可以帮助我找到语料库中的引理。
答案 0 :(得分:0)
您是否在询问如何找到一个词汇?如果是这种情况,那么您可能需要查看WordNet lemmatizer in NLTK。此外,ClearNLP库有一个形态分析器,大致相当于WordNet变形器。在这两种情况下,您都需要首先运行词性(Tag)标记器,以便词形变换器有适当的提示来说明如何阻止该词。
答案 1 :(得分:0)
我写了一个小的Python脚本来获取引理计数如下:
import nltk
import re
wnl = nltk.WordNetLemmatizer()
corpusFile = input("Ener the Corpus file name with complete path\n")
LemmaList = []
fopen = open(corpusFile, 'r',encoding='UTF-8')
for line in fopen:
line = re.sub(r"[^A-Za-z ]+", '', line)
LemmaList = LemmaList+[wnl.lemmatize(word) for word in line.split()]
print(len(set(LemmaList)))