【发布时间】:2020-01-27 21:01:18
【问题描述】:
我正在尝试标记以下句子类型:
"The item at issue is no. 3553."
到目前为止,我尝试过的每个分词器都会返回以下内容(包括在我的语料库上训练的 Punkt 分词器):
[["the", "item", "at", "issue", "is", "no."], ["3553."]]
在分词器中添加“no”缩写对于以“no”结尾的句子来说是个问题。
【问题讨论】:
-
使用正则表达式将
"no. "替换为#之类的独特内容:no\. (?=\d)。但这取决于您的语料库;它是否包含诸如“答案是否定的。3 将是错误的答案。” -
@usr2564301 我认为正则表达式就足够了。对于我的用例,最好将多个句子与其间的缩写连接起来,而不是将缩写与其所属的句子分开。
-
在您的项目中标记文本的最终目的是什么?例如,您确定准确的断句是必不可少的吗?在很多情况下,这样的错误可能没什么大不了的。在少量重复出现的类似错误是问题的情况下,您可以添加一个修复它们的通道——也许是一个预处理正则表达式,但处理令牌可能更有效。 (例如:“如果一个句子以“否”结尾,而下一个句子以数字开头,则合并句子”——可能比对原始文本的正则表达式扫描便宜得多。)
-
(如果还有其他类似的情况,如果有时错误地将两个句子合并为一个通常不会损害下游任务,那么其他启发式可能会涵盖更多的问题案例。例如:“每次候选句不以大写字母开头时,将其与前一句合并”。)
-
@gojomo 我正在预处理语料库以用于多词主题建模。未能保留句子结构会导致 n-grams 跨越句子,这会对下游产生各种负面影响。