我正在使用NLTK的sent_tokenize来拆分句子。
该模块不会使用缩写分隔句子,例如U.S.,U.S.A,U.K.。当缩写位于句子中间时,这是合理的。例如:“美国市场做得很好。”
然而,当缩写出现在句子末尾时,这是一个问题。例如,NLTK没有将以下两句话一分为二:“在2003年,我们改进了对美国以外地区核心客户的关注,因此完成了几项协议……”。
我想过使用'U.S.\sA-Z',但这样做行不通,因为有时句子中间的缩写后面会出现一个大写字母。例如,“美元...”。有没有办法克服这个问题?
发布于 2021-02-24 13:55:12
不是,不是。
几十年来,Sentence segmentation在自然语言处理中一直是一个悬而未决的问题。最好的系统可以达到90%以上的准确度--但基于规则的简单基线也是如此。总是会有模型遗漏的例外情况,无论它们对你来说有多自然。
https://stackoverflow.com/questions/66255202
复制相似问题