相关疑难解决方法(0)

从大量.txt文件及其频率生成Ngrams(Unigrams,Bigrams等)

我需要在NLTK中编写一个程序,将一个语料库(大量的txt文件)分成unigrams,bigrams,trigrams,fourgrams和fivegrams.我已经编写了代码将我的文件输入到程序中.

输入是用英文写的300 .txt文件,我希望以Ngrams的形式输出,特别是频率计数.

我知道NLTK有Bigram和Trigram模块:http://www.nltk.org/_modules/nltk/model/ngram.html

但我不是那么先进,他们进入我的计划.

输入:txt文件不是单句

输出示例:

Bigram [('Hi', 'How'), ('How', 'are'), ('are', 'you'), ('you', '?'), ('?', 'i'), ('i', 'am'), ('am', 'fine'), ('fine', 'and'), ('and', 'you')] 

Trigram: [('Hi', 'How', 'are'), ('How', 'are', 'you'), ('are', 'you', '?'), ('you', '?', 'i'), ('?', 'i', 'am'), ('i', 'am', 'fine'), ('am', 'fine', 'and'), ('fine', 'and', 'you')]
Run Code Online (Sandbox Code Playgroud)

我的代码到目前为止:

from nltk.corpus import PlaintextCorpusReader
corpus = 'C:/Users/jack3/My folder'
files = PlaintextCorpusReader(corpus, '.*')
ngrams=2

def generate(file, ngrams):
    for gram in range(0, ngrams):
    print((file[0:-4]+"_"+str(ngrams)+"_grams.txt").replace("/","_"))


for file in files.fileids(): …
Run Code Online (Sandbox Code Playgroud)

python nltk

18
推荐指数
2
解决办法
4万
查看次数

如何使用 Python nltk.tokenize 将包含停用词的短语视为单个标记

可以通过使用nltk.tokenize删除一些不必要的停用词来对字符串进行标记。但是如何将包含停用词的短语标记为单个标记,同时删除其他停用词?

例如:

输入:特朗普是美国总统。

输出:['特朗普','美国总统']

如何获得仅删除“is”和第一个“the”但不删除“of”和第二个“the”的结果?

python tokenize nltk stop-words

5
推荐指数
1
解决办法
751
查看次数

标签 统计

nltk ×2

python ×2

stop-words ×1

tokenize ×1