如何使用 gensim 将一组文档标记为 unigram + bigram bagofwords?

Posted

技术标签:

【中文标题】如何使用 gensim 将一组文档标记为 unigram + bigram bagofwords?【英文标题】:how to tokenize a set of documents into unigram + bigram bagofwords using gensim? 【发布时间】:2015-01-10 04:40:53 【问题描述】:

我知道使用 scikit learn 我可以使用,

vectorizer = TfidfVectorizer(min_df=2,ngram_range=(1, 2),norm='l2')

corpus = vectorizer.fit_transform(text)

这段代码。但是我怎么能用 gensim 做到这一点呢?

【问题讨论】:

【参考方案1】:

我想你可以看看 utils 中的 simple_preprocess

gensim.utils.simple_preprocess(doc, deacc=False, min_len=2, max_len=15) 将文档转换为令牌列表。

这将小写、标记化、去重音(可选)。 – 输出是 最终

tokens = unicode 字符串,不会被进一步处理。

【讨论】:

【参考方案2】:

使用nltkeverygrams 函数是一个很好的方法。

from nltk import everygrams

text = 'I like playing baseball'
grams = ['_'.join(grams) for grams in list(everygrams(text, 1, 2))]
grams

>> ['I', 'like', 'playing', 'baseball', 'I_like', 'like_playing', 'playing_baseball']

这将在文本中创建所有单字母和双字母。

【讨论】:

以上是关于如何使用 gensim 将一组文档标记为 unigram + bigram bagofwords?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 gensim 打印 LDA 主题模型? Python

如何让猫鼬将一组 url 推送到数组子文档

gensim doc2vec 从预训练模型中训练更多文档

Python Gensim:如何使用 LDA 模型计算文档相似度?

gensim文档相似性:如何从最相似的结果中获取文档标题?

JNI:如何将一组数据从 c++ 转换为 Java