【问题标题】:edit_distance with 'findall' in pandas大熊猫中带有“findall”的edit_distance
【发布时间】:2018-08-17 22:54:38
【问题描述】:

我有一个标记列表,需要在文本中找到它们。我正在使用pandas 来存储我的文本。但是,我注意到有时我正在寻找的标记拼写错误,因此我正在考虑添加 Levenshtein 距离来挑选那些拼写错误的标记。目前,我实现了一个非常简单的方法:

df_texts['Text'].str.findall('|'.join(list_of_tokens))

完美的发现。我的问题是如何添加edit_distance 来说明拼写错误的令牌? NLTK packages 提供了一个很好的计算编辑距离的函数:

from nltk.metrics import edit_distance

>> edit_distance('trazodone', 'trazadon')
>> 2

在上面的示例中,trazodone 是正确的标记,而 trazadon 拼写错误,应该从我的文本中检索。

理论上,我可以检查文本中的每个单词并测量编辑距离来确定它们是否相似,但这将非常低效。有什么pythonian的想法吗?

【问题讨论】:

    标签: python pandas nlp nltk edit-distance


    【解决方案1】:

    我将首先使用“拼写检查”功能来获取语料库中所有拼写不正确的单词的列表。这将大量减少数据集。然后,您可以使用 edit_distance 对所有长度足够相似的搜索标记(例如,在相同长度的一个或两个字符内)强制使用拼写错误的单词。

    您可以预先计算一个以长度为关键字的搜索标记的字典,因此当您发现诸如“portible”之类的拼写错误的单词时,您可以检查其与所有具有 7、8 或 9 个字符的搜索标记的编辑距离。

    【讨论】:

    • 谢谢,听起来真是个好主意!您能否提供一个可以执行您在第一段中提到的任务的优秀拼写检查器的链接?标准拼写检查器的问题在于它们我的领域有些特定(医学笔记),我不确定他们(检查器)是否接受过该领域的培训(例如识别药物名称)。
    猜你喜欢
    • 1970-01-01
    • 2019-11-06
    • 1970-01-01
    • 2018-06-29
    • 2018-09-14
    • 1970-01-01
    • 2018-10-20
    • 2019-01-12
    • 1970-01-01
    相关资源
    最近更新 更多