使用句子创建矢量



我想做情绪分析,并在python中创建了SVM模型,该模型使用点(坐标(绘制矢量,但仅适用于数值。我想把一个句子映射到一个向量上。示例:"食物非常美味"转换为(a,b(坐标,表示一个句子是+ve还是-ve。有没有办法把句子转换成向量。

看看NLTK


from nltk.tokenize import sent_tokenize, word_tokenize
data = "All work and no play makes jack a dull boy, all work and no play"
print(word_tokenize(data))

这将输出:

['All', 'work', 'and', 'no', 'play', 'makes', 'jack', 'dull', 'boy', ',', 'all', 'work', 'and', 'no', 'play']

更多信息可在此处找到:https://pythonspot.com/tokenizing-words-and-sentences-with-nltk/

然后你需要把这些单词变成数字——最简单的方法就是简单地使用它们的索引。

tokens = (word_tokenize(data))
indexes = [idx for idx in range(len(tokens))]

不,我们需要归一化,使数字在0和1之间。

indexes = indexes / Len(indexes)

现在我们可以使用tensorflow将这些索引转换为向量。

vector = tf.convert_to_tensor(
    indexes, dtype=tf.float)
)

请注意,在使用张量后,您需要对数据进行反规范化,如下所示:

Indexes = indexes * Len(indexes)

把它变成一个词:

tokens[x]

其中,X是要检索的单词的索引。

最新更新