首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在countVectorizer中使用二元+三元+词标词汇?

如何在countVectorizer中使用二元+三元+词标词汇?
EN

Stack Overflow用户
提问于 2019-05-11 03:00:53
回答 1查看 1.3K关注 0票数 0

我使用文本分类与朴素贝叶斯和countVectorizer来对方言进行分类。我读了一篇研究论文,作者使用了以下几种方法:

代码语言:javascript
复制
bigrams + trigrams + word-marks vocabulary 

他在这里所说的单词标记,指的是特定于某种方言的单词。

如何在countVectorizer中调整这些参数?

单词标记

这些是单词标记的例子,但我没有,因为我的是阿拉伯语。所以我翻译了它们。

代码语言:javascript
复制
word_marks=['love', 'funny', 'happy', 'amazing']

这些是用来对文本进行分类的。

另外,在这篇文章中:Understanding the ngram\_range argument in a CountVectorizer in sklearn

答案是这样的:

代码语言:javascript
复制
>>> v = CountVectorizer(ngram_range=(1, 2), vocabulary={"keeps", "keeps the"})
>>> v.fit_transform(["an apple a day keeps the doctor away"]).toarray()
array([[1, 1]])  # unigram and bigram found

我不能理解输出,这里的1,1是什么意思?他是如何在词汇中使用ngram的呢?它们不都是相互排斥的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-11 08:41:56

您希望使用n_gram范围参数来使用二元语法和三元语法。在您的例子中,它应该是CountVectorizer(ngram_range=(1,3))。

有关详细信息,请参阅accepted to this question

请为你问题的另一部分提供“单词标记”的例子。

您可能必须运行CountVectorizer两次-一次用于n-gram,一次用于自定义单词标记词汇表。然后,您可以连接来自两个CountVectorizers的两个输出,以获得n元语法计数和自定义词汇表计数的单个特征集。上面问题的答案还解释了如何为第二次使用CountVectorizer指定自定义词汇表。

下面是一个关于连接数组的SO answer

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56083449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档