StanfordNLP Tokenizer

时间:2015-02-27 10:27:15

标签: tokenize stanford-nlp misspelling

我使用StanfordNLP来标记用智能手机编写的一组消息。这些文本有很多拼写错误,不尊重标点规则。 通常缺少影响标记化的空格。

例如,下面的句子错过了#34;加利福尼亚州的空白。这个"和#34;大学,成立"。

斯坦福大学位于加利福尼亚州。这所大学是一所伟大的大学,成立于1891年。

tokenizer返回:

{" Stanford"," University"," is","位于",""" ;," California.This" ," university",""," a",&#34 ;伟大","大学",",","成立","在", " 1891","。"}

如所观察到的那样,他们将所有代币分开,但是"加利福尼亚州。这个" (我希望有三个代币{"加利福尼亚""。""这"})。 我看了一下标记化规则,我观察到单词的正则表达式接受了单词中句子末尾使用的标点符号。

WORD = {LETTER}({LETTER} | {DIGIT})([。!] {LETTER}({LETTER} | {DIGIT}))*

我删除了最后一部分并重新编译,但令牌化程序仍然没有改变它的行为。

有人知道如何避免这种不受欢迎的行为吗? 或者有人,可以指出另一个与这类文本一起使用的标记器吗?

1 个答案:

答案 0 :(得分:1)

我假设您指的是令牌化程序的.flex文件?

在重新构建之前,您需要从此规范生成新的Java代码。使用flexeverything Ant构建任务(请参阅我们的build spec)。


您可能还会发现Twokenize有用。这是推文的自包含标记器。它是CMU Noah Smith小组TweetNLP package的一部分。 (请注意,此代码为GPL v2。)