Python 使用同义词进行单词关联/匹配

Python 使用同义词进行单词关联/匹配,python,csv,text-processing,synonym,python-textprocessing,Python,Csv,Text Processing,Synonym,Python Textprocessing,我正在尝试匹配两个不同csv文件的列。我成功地将单词与“house”和“residence”或“notes”和“comments”等同义词匹配起来。我的问题是我无法成功地关联更复杂的单词 示例:(这些是来自不同文件的列名) “电子邮件”和“电子邮件地址”。我的程序可以检测到“电子邮件”和“电子邮件”相同,但无法将“电子邮件”连接到“地址” 其他例子: “头衔/称呼”和“头衔”。我发现它们与“Title”一词匹配,于是我扔掉了“敬礼”一词。但这不能应用于前面的示例,因为我不想放弃“地址” 我怎样才

我正在尝试匹配两个不同csv文件的列。我成功地将单词与“house”和“residence”或“notes”和“comments”等同义词匹配起来。我的问题是我无法成功地关联更复杂的单词

示例:(这些是来自不同文件的列名)

“电子邮件”和“电子邮件地址”。我的程序可以检测到“电子邮件”和“电子邮件”相同,但无法将“电子邮件”连接到“地址”

其他例子:

“头衔/称呼”和“头衔”。我发现它们与“Title”一词匹配,于是我扔掉了“敬礼”一词。但这不能应用于前面的示例,因为我不想放弃“地址”

我怎样才能决定是保留其他单词还是扔掉它们

编辑: 我添加了一些代码。对不起,如果它让人困惑的话

elif len(list_of_tokens_1[i]) == 1 and len(list_of_tokens_2[j]) == 2:
    score1, list1_1,list1_2, syns_dict = common_words_advanced(copy_tokens_1[i][0], copy_tokens_2[j][0], syns_dict)
    score2, list2_1,list2_2, syns_dict = common_words_advanced(copy_tokens_1[i][0], copy_tokens_2[j][1], syns_dict)
标记列表\u 1包含第一个文件的列名和第二个文件的标记列表\u 2,这两个文件都是标记化的(例如,电子邮件地址->['e-mail','Address']。复制标记和复制标记是以前列表的副本,因此我可以进行更改

syns_dict包含一个词的所有同义词,以该词为关键字

common_words_advanced是一个函数,用于返回这些单词在将同义词字符串与字符串进行比较时的接近程度。如果分数为1,则表示它们至少有一个相同的同义词,因此它们匹配。如果分数小于1,则表示它们接近,但不匹配

list2_1、list1_2等包含返回的每个单词的最佳匹配同义词


在这段代码中,我尝试将[Email]len==1与[E-mail,Address]len==2进行匹配。第一行输入了“Email”和“E-mail”,分数为1。第二行比较Email和Address,分数为~0.5(非常糟糕)。

除非我看到代码,否则帮不了你。我的代码行太多,无法发布。我添加了一点