Dex*_*ter 2 python nlp nltk part-of-speech word-frequency
我想计算Python/NLTK 中函数单词的频率.我认为有两种方法可以解决这个问题:
第一种情况下的问题是,我的数据很嘈杂,我不知道(肯定)哪些POS标签构成功能词.第二种情况下的问题是我没有列表,因为我的数据很吵,所以查找不准确.
我更喜欢第一个到第二个或任何其他会给我更准确结果的例子.
我刚刚使用了LIWC English 2007词典(我支付了相同的费用)并执行了一个简单的查找.其他任何答案都是最受欢迎的.
我必须说,我对这里几个答案的冲动感到有些惊讶.因为,有人要求代码.这是我做的:
''' Returns frequency of function words '''
def get_func_word_freq(words,funct_words):
fdist = nltk.FreqDist([funct_word for funct_word in funct_words if funct_word in words])
funct_freq = {}
for key,value in fdist.iteritems():
funct_freq[key] = value
return funct_freq
''' Read LIWC 2007 English dictionary and extract function words '''
def load_liwc_funct():
funct_words = set()
data_file = open(liwc_dict_file, 'rb')
lines = data_file.readlines()
for line in lines:
row = line.rstrip().split("\t")
if '1' in row:
if row[0][-1:] == '*' :
funct_words.add(row[0][:-1])
else :
funct_words.add(row[0])
return list(funct_words)
Run Code Online (Sandbox Code Playgroud)
任何在python中完成一些代码的人都会告诉你,执行查找或提取具有特定POS标签的单词并不是火箭科学.要添加,NLP(自然语言处理)和NLTK(自然语言工具包)的标签(在问题上)应该是精明的指示.
无论如何,我理解和尊重在这里回复的人的情绪,因为大部分都是免费的,但我认为我们至少可以做的是对问候海报表示一点尊重.正确地指出,当你帮助他人时,会收到帮助,当尊重他人时,同样会受到尊重.