DetectorMorse,一个句子分割器
项目描述
Detector Morse
Detector Morse是一款用于句子边界检测(以下简称SBD)的程序,也称为句子分割。考虑以下句子,来自宾州树库的《华尔街日报》部分:
Rolls-Royce Motor Cars Inc. said it expects its U.S. sales to remain
steady at about 1,200 cars in 1990.
这个句子包含4个句号,但只有最后一个表示句子边界。在U.S.
中的第一个句号明确是首字母缩略词的一部分,而不是句子边界;同样,$12.53
这样的表达式也是如此。但Inc.
和U.S.
结尾的句号很容易表示句子边界。人类通过局部上下文来确定,这两个句号都不表示句子边界(例如,如果U.S.
之后立即有一个句子边界,动词expect的选择性属性就不满足)。Detector Morse使用手工制作、精心设计的上下文特征和低影响、无痕迹的机器学习方法来自动检测句子边界。
SBD是许多自然语言处理管道中最早的部分之一。由于此步骤的错误可能会传播,因此SBD是自然语言处理中一个重要但被忽视的问题。
Detector Morse已在CPython 3.4和PyPy3(2.3.1,相当于Python 3.2)上进行了测试;后者速度更快。Detector Morse依赖于Python模块nlup
(它反过来依赖于jsonpickle
)来序列化和反序列化模型。有关使用的版本,请参阅requirements.txt
。
安装
pip install detectormorse
用法
Detector Morse, by Kyle Gorman
usage: python -m detectormorse [-h] [-v | -V] (-t TRAIN | -r [READ])
(-s SEGMENT | -w WRITE | -e EVALUATE)
[-E EPOCHS] [-C] [--preserve-whitespace]
Detector Morse
optional arguments:
-h, --help show this help message and exit
-v, --verbose enable verbose output
-V, --really-verbose enable even more verbose output
-t TRAIN, --train TRAIN
training data
-r [READ], --read [READ]
read in a serialized model from a path or read the
default model if no path is specified
-s SEGMENT, --segment SEGMENT
segment sentences
-w WRITE, --write WRITE
write out serialized model
-e EVALUATE, --evaluate EVALUATE
evaluate on segmented data
-E EPOCHS, --epochs EPOCHS
# of epochs (default: 20)
-C, --nocase disable case features
--preserve-whitespace
preserve whitespace when segmenting
用于训练(-t
/--train
)和评估(-e
/--evaluate
)的文件应每行包含一个句子;否则,忽略换行符。
当分割文件(-s
/--segment
)时,DetectorMorse简单地在新预测的句子边界之后插入换行符,这些边界尚未由换行符标记。所有其他换行符都通过,未受干扰。
包含的DM-wsj.json.gz
是在宾州树库的《华尔街日报》部分上训练的分割器模型。可以使用detector.default_model()
或通过在命令行中指定不带路径的-r
来加载此模型。
方法
参见这篇博客文章。
注意事项
DetectorMorse通过将整个文件读入内存来处理文本。这意味着它无法处理无法适应可用RAM的文件。解决这个问题最简单的方法是在自己的Python脚本中导入Detector
实例。
激动人心的额外功能!
我包含了一个Perl脚本untokenize.pl
,该脚本试图逆转宾州树库标记化过程。标记化是一个本质上是“有损”的过程,因此无法保证输出与WSJ中的内容完全一致。但是,规则似乎正确,并能生成合理的文本,我已经将它用于所有实验。更新(2015-02-10):我已经删除了这个脚本;现在我只是使用斯坦福标记化器来完成这个目的。
项目详情
DetectorMorse-0.4.1.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8404509be1f6ed3bba4baff2394257a080eae855f8188abb077854b684d8107d |
|
MD5 | 263d08c208eb94f9ab4f27de2444a362 |
|
BLAKE2b-256 | c6d6950d6fffeebd24718f444a927259e743f148bc2a63141bf040f650e2b4d2 |