如何在countVectorizer中使用bigrams + trigrams + word-marks词汇?
How to use bigrams + trigrams + word-marks vocabulary in countVectorizer?
我正在使用带有朴素贝叶斯和 countVectorizer 的文本分类来对方言进行分类。我读了一篇研究论文,作者使用了以下组合:
bigrams + trigrams + word-marks vocabulary
他这里说的是词标,就是特定方言的词。
如何在 countVectorizer 中调整这些参数?
文字标记
所以这些是文字标记的例子,但我没有,因为我的是阿拉伯语。所以我翻译了它们。
word_marks=['love', 'funny', 'happy', 'amazing']
那些用于对文本进行分类。
此外,在 post 中:
Understanding the `ngram_range` argument in a CountVectorizer in sklearn
有这个答案:
>>> 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 与词汇一起使用的?两者不是相互排斥的吗?
您想使用 n_gram 范围参数来使用双字母组和三字母组。在您的情况下,它将是 CountVectorizer(ngram_range=(1, 3)).
有关详细信息,请参阅已接受的答案 to this question。
请为您问题的另一部分提供 [=22=] 的示例。
您可能需要 运行 CountVectorizer 两次 - 一次用于 n-grams 一次用于您的自定义 word-mark 词汇表。然后,您可以连接两个 CountVectorizer 的两个输出,以获得 n-gram 计数和自定义词汇表计数的单个特征集。上述问题的答案还解释了如何为第二次使用 CountVectorizer 指定自定义词汇表。
这里是关于连接数组的SO answer
我正在使用带有朴素贝叶斯和 countVectorizer 的文本分类来对方言进行分类。我读了一篇研究论文,作者使用了以下组合:
bigrams + trigrams + word-marks vocabulary
他这里说的是词标,就是特定方言的词。
如何在 countVectorizer 中调整这些参数?
文字标记
所以这些是文字标记的例子,但我没有,因为我的是阿拉伯语。所以我翻译了它们。
word_marks=['love', 'funny', 'happy', 'amazing']
那些用于对文本进行分类。
此外,在 post 中: Understanding the `ngram_range` argument in a CountVectorizer in sklearn
有这个答案:
>>> 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 与词汇一起使用的?两者不是相互排斥的吗?
您想使用 n_gram 范围参数来使用双字母组和三字母组。在您的情况下,它将是 CountVectorizer(ngram_range=(1, 3)).
有关详细信息,请参阅已接受的答案 to this question。
请为您问题的另一部分提供 [=22=] 的示例。
您可能需要 运行 CountVectorizer 两次 - 一次用于 n-grams 一次用于您的自定义 word-mark 词汇表。然后,您可以连接两个 CountVectorizer 的两个输出,以获得 n-gram 计数和自定义词汇表计数的单个特征集。上述问题的答案还解释了如何为第二次使用 CountVectorizer 指定自定义词汇表。
这里是关于连接数组的SO answer