我正在和我的大学一起做一个NLP项目,收集冰岛语单词的数据,这些单词的拼写都是I和y(冰岛语中的发音是一样的,仅供参考),其中的变体都是实际单词,但意思并不相同。这方面的例子包括leyti(时间上的近似值)和leiti(长满草的山),或者kirkja(教堂)和kyrkja(窒息)。我有一个200万字的数据集。我已经收集了两个单词表,其中一个包含拼写为y的单词,另一个包含拼写为I的相同单词(虽然它们似乎不完全匹配,因为y列表有点长,但这是一个单独的问题)。我的问题是,我想以成对的单词结束,比如leyti-leiti,kyrkja-kirkja,等等。但是,由于y在字母表中的位置比我晚得多,所以仅仅对列表进行排序并以这种方式将它们配对是没有用的。我也试着压缩列表,同时检查前几个字母,看看我是否能找到一个匹配的,但这遗漏了所有的单词有y或I作为第一个字母。你对我如何实施这个有什么建议吗
我不认为这是一个编程挑战,但看起来更像一个NLP挑战本身。拼写变化通常是预处理过程中遇到的一个障碍
我建议您使用基于Edit-distance的方法来识别允许某些变体的词对。特别是对于您上面描述的问题,我建议使用“Jaro Winkler Distance”。这种方法允许在单词对之间给出更高的相似度,以显示特定字符对之间的变化,比如y和i
所有这些方法都在Jellyfish library中实现。 你也可以看看fuzzywuzzy package。希望这有帮助
所以这就完成了我的任务,有点简单,我想不是很好的解决方案,但它是有效的:
尝试以下操作:
相关问题 更多 >
编程相关推荐