使用模型比较姓名和姓氏

我将员工的姓名保存在一个文本文件中。我处理了这个文件,并比较了其中已存在的姓名。当我使用most_similar方法进行检查时,我发现即使在语料库中存在完全相同的姓名,它返回的也是完全不相关的姓名。

import gensimtraining_file='todel.txt'mylist=list()with open(training_file, encoding="iso-8859-1") as f:    for i, line in enumerate(f):        mylist.append(gensim.models.doc2vec.TaggedDocument(gensim.utils.simple_preprocess(line), [i]))model = gensim.models.doc2vec.Doc2Vec(vector_size=50, min_count=2, epochs=55)model.build_vocab(mylist)inferred_vector=model.infer_vector(['aakash', 'prakash', 'patel'])sims = model.docvecs.most_similar([inferred_vector])' '.join(mylist[sims[0][0]].words)

我如何正确地训练数据以返回(近似)匹配的姓名?


回答:

您定义的相似性是以编辑距离为基础的,即两个字符串有多相似。

x2vec模型定义的相似性是以语义接近度为基础的,即两个含义有多相似,这是通过机器学习和共现统计计算得出的。

换句话说,您用大锤子来打一只苍蝇。请查看计算字符串距离的工具

from Levenshtein import distancestring1 = 'aakash'string2 = 'akash'string3 = 'konstantinos'print(distance(string1, string2))1print(distance(string1, string3))11

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注