计算单词出现的文本数

时间:2018-04-12 21:15:22

标签: python text scikit-learn word-frequency

我正在为一组文本文件构建一个单词频率和相对频率列表。通过手工发现一些文本可以过度影响单词的频率,我想要做的事情之一是计算单词出现的次数。我觉得有两种方法可以做到这一点:

首先,要编译一个单词频率字典(如下所示 - 我不使用NLTK FreqDist,因为这段代码实际上运行得更快但是如果FreqDist内置了上述功能,我只是没有&#39我知道,我会接受它:

import nltk

tokenizer = nltk.tokenize.RegexpTokenizer(r'\w+')

freq_dic = {}
for text in ftexts:
    words = tokenizer.tokenize(text)
    for word in words:
        # form dictionary
        try: 
            freq_dic[word] += 1
        except: 
            freq_dic[word] = 1

从那里开始,我假设我需要编写另一个使用上述键作为关键字的循环:

# This is just scratch code
for text in ftexts:
    while True:
        if keyword not in line:
            continue
        else:
            break
    count = count + 1

然后我会找到一些方法将这两个字典网格化为一个元组,或者可能是一个pandas数据框,这样:

word1, frequency, # of texts in which it occurs
word2, frequency, # of texts in which it occurs

当我写这个问题时,我遇到的另一件事是使用SciKit的术语频率矩阵,然后计算一个单词出现的行?这可能吗?

添加到CLARIFY:

想象三句话: ["我需要记住孩子的数量。",  "如果你想知道点数是什么,那就问问。"  "这里没有鸡,鸡,鸡。"]

"计数"发生2次,但有两种不同的文字; "鸡"发生三次,但只有一个文本。我想要的是一份如下所示的报告:

WORD, FREQ, TEXTS
count, 2, 2
chicken, 3, 1

0 个答案:

没有答案