【问题标题】:Creating vector using Sentence使用句子创建向量
【发布时间】:2020-03-26 15:04:26
【问题描述】:

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

【问题讨论】:

    标签: python machine-learning project sentiment-analysis


    【解决方案1】:

    看看 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 是您要检索的单词的索引。

    【讨论】:

    • 非常感谢分享这些信息,我只是想得到一个想法,我如何将标记转换为单个向量。
    • 在我的回答中添加了更多细节。我希望这会有所帮助。
    • @AtharvUpadhyay 如果这回答了您的问题,您是否可以考虑将其标记为已接受的答案?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多