使用模型比较姓名和姓氏

我将员工的姓名保存在一个文本文件中。我处理了这个文件,并比较了其中已存在的姓名。当我使用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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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