python 缩写_关于python:处理缩写的通用解决方案

本文讨论了在Python中处理句子分割时遇到的缩写问题,指出现有的解决方案如nltk的punkt标记器存在的挑战。作者提出手动创建缩写列表并不理想,并考虑使用机器学习模型作为更全面的解决方案。同时,建议评估现有工具的性能并可能需要预处理或后处理结果。
摘要由CSDN通过智能技术生成

问题?

给定输入语句:

Hello, Mr. Anderson.

默认句子标记器(punkt和nltk样本泡菜)将其转换为:

句子1:Hello, Mr

句子2:Anderson

什么时候应该真正保持原样。

为什么现有解决方案很难找到?

有一般的解决方案吗?这似乎是一个常见问题,甚至在nltk python教程书中也提到过。

Sentence segmentation is difficult because period is used to mark abbreviations, and some periods simultaneously mark an abbreviation and terminate a sentence, as often happens with acronyms like U.S.A.

但是,我看到的所有解决方案都是基于手动输入的缩写,例如本缩写;或训练新的泡菜-因为我的搜索不会发现其他人已经训练过的内容(句子边界消除歧义的第一条规则...)。

手动建立英文缩写列表是一项艰巨的任务。而且我还没有在nltk中找到任何有关此类列表的明确文档。

我目前的方法:我正在尝试编写一个网络爬虫以使用此列表。我讨厌它。该列表还远远不够完整,我真正希望的是扩展webscraper以便合并几个这样的列表。然后,我将使用该列表形成假设的缩写扩展,并查看它们是否有意义……我在跟谁开玩笑?我可能会回去睡觉。

这是nltk标记中的一个常见问题:"我有一个通用的统计工具,但会出错。包括一些对我来说显而易见的情况。我该怎么办?" 答:首先评估(衡量)您拥有的工具。 真的有问题吗? 不要因一次荒谬的失败而推迟。 如果性能低到无法接受的程度:选择一个更好的工具(并非总是可行),构建或训练一个更好的工具(困难),或对您拥有的结果进行预处理或后处理。 同样,通过评估结果的性能进行选择。

您可以采取反动,排他的方法:至少两个字母而不是一个合法单词,后跟一个句号的任何东西都必须是缩写。 您的文字语料库允许吗? 缺点是拼写错误,其他拼写错误,随意使用SMS,lang语或其他未"正式"识别的单词,以及缩写也是合法单词的情况(例如" Ed。note")。

如果您想要一个全面的解决方案……那么,机器学习模型在您的应用程序中会有用吗? 提供示例,让它了解"定期服装"中的哪些项目[ 不是缩写词,并将其合并到您选择的句子切片器中。

您在猜测一个著名车轮的重塑。 punkt标记器(随nltk一起提供)使用一种无监督的学习算法来检测句子边界,而有监督的方法大约是一打钱。

"至少两个字母且不是合法单词的任何字符,后跟一个句号,都必须是缩写"。除了您提到的缺点之外,上述Hello, Mr. Anderson.中的Anderson也不是缩写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值