如何创建表示单词特征包的向量

时间:2017-05-25 17:56:47

标签: python vector nlp

我对编程非常陌生,我想知道如何为一个单词创建一个向量,表示单词及其邻居是否可以在我所拥有的单词包中找到。

假设,我的词汇表是列表['star','moon','sun']

我有一个看起来像这样的文本

['the','sun','is','brighter','than','the','moon','because','the','moon','only','reflects','light','from','the','sun','anyways','I','like','stars','the','best','.']

我想为每个单词[0,0,0]创建一个向量,它是一个零数组,每个零表示词汇表中的相应单词,我有一个单词的上下文,后面有一个单词,短语中每个标记的上下文向量如下: [0,0,1](背景:太阳) 太阳[0,0,1](背景:太阳是) 是[0,0,1](背景:太阳很明亮) ... 最好的[0,0,0](背景:最好的。) 。[0,0,0](上下文:最好。)

现在我已经做的是创建一个三元组列表,如下所示:

[('$','the','sun'),('the','sun','is'),('sun','is','bright')...('the','best','.'),'('best','.','$')']

我认为通过这种方式我可以检查每个元组中是否存在词汇表中的项目,但我不确定如何从这里开始,如果这是正确的方法。< / p>

我非常感谢你的帮助! 谢谢!!

1 个答案:

答案 0 :(得分:0)

所以你的问题简化为“如何在单词列表中找到单词的位置?”这是Python index函数,如

vector = [0, 0, 0]
for pos in range (3):
    word = trigram[pos]
    vector[pos] = word_list.index(word)

有更好的方法可以在Python中执行此操作,但这可以分解为小步骤。在你自己做到这一点之前,要非常警惕做更多的NLP编程。

如果您要攻击NLP问题,我强烈建议您花一些时间来学习编程,而不管您的项目。在线搜索Python教程,学习使用文档,并逐步学习此域中搜索所需的术语。