刑侦官,分词器
DetectorMorse的Python项目详细描述
莫尔斯探测器
morse检测器是一个句子边界检测程序(以下简称sbd),也称为句子分割。请考虑以下句子,摘自宾夕法尼亚州特雷班克的华尔街日报部分:
Rolls-Royce Motor Cars Inc. said it expects its U.S. sales to remain
steady at about 1,200 cars in 1990.
这个句子包含四个句点,但只有最后一个表示句子边界。U.S.
中的第一个是首字母缩写词的一部分,而不是句子边界;类似于$12.53
的表达式也是如此。但是Inc.
和U.S.
结尾的句点可以很容易地表示句子的边界。人类使用本地上下文来确定这两个句点都不表示句子边界(例如,如果紧跟在U.S.
之后有一个句子边界,那么动词expect的选择属性就不满足)。morse检测器采用艺术化、手工制作的上下文特征和低影响、不留痕迹的机器学习方法自动检测句子边界。
sbd是许多自然语言处理管道中最早的一个。由于这一步的错误可能会传播,sbd是自然语言处理中的一个重要问题,尽管它被忽略了。
morse探测器已经在cpython 3.4和pypy3(2.3.1,对应于python3.2)上进行了测试;后者的速度要快得多。morse检测器依赖于python模块nlup
(而python模块又依赖于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
)时,detectorse只需在预测的句子边界后面插入一个新行,而这些句子边界还没有被一个新行标记。所有其他换行符都是通过的,不受干扰。
包含的DM-wsj.json.gz
是一个分段器模型,它在penn treebank的wall st.journal部分进行训练。此模型可以通过使用detector.default_model()
或通过在命令行指定不带路径的-r
来加载。
方法
注意事项
detectormorse通过将整个文件读入内存来处理文本。这意味着它无法处理不适合可用RAM的文件。解决这个问题的最简单方法是在您自己的python脚本中导入Detector
实例。
精彩的附加节目!
我包含了一个perl脚本untokenize.pl
,它试图反转penn treebank标记化过程。标记化是一个固有的“有损”过程,因此不能保证输出就是它在《华尔街日报》上出现的样子。但是,这些规则似乎是正确的,并且产生了正确的文本,我已经将其用于所有的实验。update(2015-02-10):我已经删除了这个脚本;我现在只使用斯坦福标记器来实现这个目的。