目前致力于简历解析器的工作,并努力在其中嵌入带有“-”符号的单词。比如“IT经理”。
这些词的向量表示被doc2vec错误地分类。
“it经理”
但当我移除“-”符号时,它被标记化并被归类为正确的。
“它”,“经理”
如何正确处理这些数据?对于这种任务,我想,最好是排除符号。但是也许有一种方法可以告诉Doc2vec把这些词当作两个不同的词来对待。或者告诉word_tokenizer以这种方式标记它们?
发布于 2019-03-13 08:05:22
gensim的Phrases模块也可能有帮助:
from gensim.models import Phrases
documents = [
"the mayor of new york was there",
"machine learning can be useful sometimes",
"new york mayor was present"
]
sentence_stream = [doc.split(" ") for doc in documents]
bigram = Phrases(sentence_stream, min_count=1, threshold=2)
sent = [u'the', u'mayor', u'of', u'new', u'york', u'was', u'there']
print(bigram[sent])
# Expected output:
# [u'the', u'mayor', u'of', u'new_york', u'was', u'there']该代码来自另一个答案 (为了方便起见,我在上面复制了它)。
有关Phrases模块的更多信息,请查看此页 out。
发布于 2019-03-11 14:25:45
通常,您希望删除与令牌的含义无关的任何符号。在“it-manager”的情况下,通过删除-您不会影响对单词的负面解释。我建议过滤你的词汇,以识别所有的单词与其他符号,并作出判断,你是否可以过滤符号,而不影响该词的解释。
您可以使用regex筛选器来完成此操作,例如:
m = re.search(r'[^\w]', <some string>)https://datascience.stackexchange.com/questions/47080
复制相似问题