标记化后的单词包

2024-04-28 11:21:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我研究了许多文本挖掘方法,在创建一袋单词时遇到了问题。我明白这是要把单词转换成数字,这样机器才能理解它,但问题是我刚刚完成了标记化,删除了停止词,柠檬化。最后是一个单词列表,比如:

['a', 'b', 'a', 'c', 'd', 'a', 'b']

基本上我决定用单词来标记。有些词是重复的,不清楚。我读过的每一袋单词的开头都有一组句子,而不是一组单词:

['Tom likes blue.', 'Adam likes yellow.' ,'Ann likes red and blue']

我的方法正确吗?如果我有一个单字数组,准备一袋字有意义吗?还是我的标记化错了?或者是顺序不对?但是在一些例子中(比如这里:https://medium.com/@bedigunjit/simple-guide-to-text-classification-nlp-using-svm-and-naive-bayes-with-python-421db3a72d34),我们通常在开始时标记文本。你知道吗

这应该是文本分类的一部分,并准备使用像朴素贝叶斯,支持向量机等算法,但我被困在这一点上。。。也许我搞错了,应该从我所有的事件而不是一个文档中创建一袋单词?你知道吗


Tags: and方法标记文本机器列表数字blue
2条回答

如果共享管道,将会有更好的更新。但你的例子很简单-

from sklearn.feature_extraction.text import CountVectorizer
vec = CountVectorizer(stop_words='english')
op = vec.fit_transform(['Tom likes blue.', 'Adam likes yellow.' ,'Ann likes red and blue'])
print(op.todense())
print(vec.vocabulary_)

输出

[[0 0 0 1 1 0 1 0]
 [1 0 0 0 1 0 0 1]
 [0 1 1 1 1 1 0 0]]
{'tom': 6, 'likes': 4, 'blue': 3, 'adam': 0, 'yellow': 7, 'ann': 2, 'red': 5, 'and': 1}

如果我理解正确的话,你想从一个标记化文本文档中准备一袋单词,这是错误的方法。在对每个文档(语料库)进行预处理之后,基本上必须回到“句子”的形式

['hello', 'like', mountain', 'spring']

快去吧

'hello like mountain spring'

对所有文档都这样做,这样您将拥有与示例中的数组相似的数组

['hello like mountain summer', 'another string here', 'another also here']

这是我们可以开始准备一袋单词的表格,它将是:

{hello, like, mountain, summer, another, string, here, also}

从这一点上,计算TF,TFID是很容易的,这是符合CountVectorizer期望的形式。你知道吗

相关问题 更多 >