【问题标题】:StanfordNLP Tokenizer斯坦福NLP分词器
【发布时间】:2015-04-30 00:46:40
【问题描述】:

我使用 StanfordNLP 对一组用智能手机编写的消息进行标记。这些文本有很多错别字,不遵守标点规则。 很多时候缺少空格会影响标记化。

例如,以下句子缺少“California.This”和“university,founded”中的空格。

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

分词器返回:

{"Stanford", "University", "is", "located", "in", "California.This", "university", "is", "a ", "伟大", "大学", ",", "创立", "in", "1891", "."}

正如观察到的,他们很好地分割了除“California.This”之外的所有标记(我希望有三个标记{“California”“。”“this”})。 我查看了标记化规则,发现单词的正则表达式接受用于单词中句子结尾的标点符号。

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

我删除了最后一部分并重新编译,但标记器仍然没有改变它的行为。

有人知道如何避免这种不受欢迎的行为吗? 或者有人可以告诉我另一个适用于此类文本的标记器吗?

【问题讨论】:

    标签: tokenize stanford-nlp misspelling


    【解决方案1】:

    我假设您指的是标记器的 .flex 文件?

    在再次构建之前,您需要根据该规范生成新的 Java 代码。使用flexeverything Ant 构建任务(参见我们的build spec)。


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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-12
      • 2014-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-20
      相关资源
      最近更新 更多