计算给定语料库中的引理数

时间:2015-02-18 22:38:03

标签: nlp stanford-nlp opennlp

我是自然语言处理的新手。

目前我正在研究一个语料库并尝试使用添加一个平滑实现bigram模型..

根据Add-one Smoothing方法

Add-one smoothing formula

这里V是语料库的词汇,即语料库中词类型的总数。 但在计算单词类型时,我正在考虑同一词干中的单词。即计数时,猫和猫将是相同的。

我想知道是否有任何方法或算法可以帮助我找到语料库中的引理。

2 个答案:

答案 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)))