【发布时间】:2023-03-28 07:36:01
【问题描述】:
有问题?
给定输入语句:Hello, Mr. Anderson.
默认的句子标记器(punkt 和 nltk 示例 pickle)将其转换为:
第一句:Hello, Mr
第二句: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.
然而,我见过的所有解决方案要么基于手动输入缩写,例如this one;要么或训练一个新的泡菜 - 因为我的搜索不会出现其他人训练过的搜索(句子边界消歧的第一条规则......)。
手动构建英文缩写列表是一项艰巨的任务;而且我还没有在 nltk 中找到任何关于此类列表的明确文档。
我目前的做法:我正在尝试编写一个网络爬虫来使用this 列表。我讨厌它。该列表远未完成,我真正希望的是扩展网络爬虫以组合几个这样的列表。然后,我将使用该列表来形成假设的缩写扩展,看看它们是否有意义……我在开玩笑吗?我可能会回去睡觉了。
【问题讨论】:
-
这是
nltk标签中的一个常见问题:“我有一个通用的统计工具,但它会出错。包括一些我觉得很明显的情况。我该怎么办?”答:首先评估(衡量)您拥有的工具。真的有问题吗?不要被一个荒谬的失败吓倒。如果性能低得无法接受:选择更好的工具(并非总是可能),构建或训练更好的工具(困难),或对现有工具的结果进行预处理或后处理。同样,通过评估结果的表现来选择。