【问题标题】:Sentence2vec and Word2vec involving stop words and Named EntitiesSentence2vec 和 Word2vec 涉及停用词和命名实体
【发布时间】:2018-02-27 14:16:27
【问题描述】:

我正在做一个 NLP 项目,涉及到 sentence2vec。我假设我将使用预先训练的词嵌入将标记转换为向量,然后继续进行句子嵌入。

由于我的句子涉及: can't, won't, aret 等停用词 NLTK 会简化为 {ca, wo, are} + not
所以我不能减少它们,我不想将它们作为停用词删除,因为下面提到的句子应该有不同的嵌入。

我叫普里扬克
我的名字不是普里扬克

另一个重要的疑问是如何在我的句子向量中合并命名实体,例如像 Mark K. Hogg 这样的人的名字。

【问题讨论】:

    标签: python nlp word2vec sentence-similarity


    【解决方案1】:

    你可以从这个list中删除你不想成为停用词的词

    # Open a file and read it into memory
    file = open('words.txt')
    text = file.read()
    
    # Apply the stoplist to the text
    clean = [word for word in text.split() if word not in stoplist]
    

    【讨论】:

    • 您如何建议我考虑没有 word2vec 嵌入的命名实体,例如 Indian Name。
    • 这些名称也将被视为任何其他单词。如果您想使用,最好训练自己的 word2vec。如果您没有足够的数据,则可以使用命名实体识别更好地识别这些名称,并用一些常用词替换这些词。无论如何,它们不会为您的语义匹配增加任何价值。
    • 如果用例像上面提到的那样,tfidf 效果更好。
    • 非常感谢。让我试试,如果我无法解决有关命名实体的冲突,我会在这里发表评论。最后一个疑问,对于在 word2vec 词汇表中不存在嵌入的名称,我应该删除它们还是用“他/她”之类的词替换它们
    • 用一些常用词替换它们,比如所有人的名字
    猜你喜欢
    • 1970-01-01
    • 2020-01-25
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-12
    相关资源
    最近更新 更多