StanfordNLP 分词器
StanfordNLP Tokenizer
我使用 StanfordNLP 对一组用智能手机编写的消息进行标记。这些文本有很多拼写错误,并且不遵守标点符号规则。
经常缺少空格会影响标记化。
例如,下面的句子漏掉了"California.This"和"university,founded"中的空格。
斯坦福大学位于California.This大学是一所伟大的大学,成立于1891年
分词器 returns:
{"Stanford", "University", "is", "located", "in", "California.This", "university", "is", "a", "great", "university", ",", "founded", "in", "1891", "."}
正如观察到的那样,他们很好地拆分了所有标记,但 "California.This"(我希望有三个标记 {"California"“。”"this"})。
我查看了标记化规则,发现单词的正则表达式接受单词中用于句子结尾的标点符号。
WORD = {LETTER}({LETTER}|{DIGIT})([.!?]{LETTER}({LETTER}|{DIGIT}))*
我删除了最后一部分并重新编译,但分词器仍然没有改变它的行为。
有人知道如何避免这种不受欢迎的行为吗?
或者有人可以告诉我另一个适用于此类文本的分词器吗?
我假设您指的是分词器的 .flex
文件?
您需要根据此规范生成新的 Java 代码,然后才能再次构建。使用 flexeverything
Ant 构建任务(参见我们的 build spec)。
您还可以从 CMU 的 Noah Smith 小组中找到 Twokenize
useful. This is a self-contained tokenizer for tweets. It's part of the TweetNLP package。 (请注意,此代码是 GPL v2。)
我使用 StanfordNLP 对一组用智能手机编写的消息进行标记。这些文本有很多拼写错误,并且不遵守标点符号规则。 经常缺少空格会影响标记化。
例如,下面的句子漏掉了"California.This"和"university,founded"中的空格。
斯坦福大学位于California.This大学是一所伟大的大学,成立于1891年
分词器 returns:
{"Stanford", "University", "is", "located", "in", "California.This", "university", "is", "a", "great", "university", ",", "founded", "in", "1891", "."}
正如观察到的那样,他们很好地拆分了所有标记,但 "California.This"(我希望有三个标记 {"California"“。”"this"})。 我查看了标记化规则,发现单词的正则表达式接受单词中用于句子结尾的标点符号。
WORD = {LETTER}({LETTER}|{DIGIT})([.!?]{LETTER}({LETTER}|{DIGIT}))*
我删除了最后一部分并重新编译,但分词器仍然没有改变它的行为。
有人知道如何避免这种不受欢迎的行为吗? 或者有人可以告诉我另一个适用于此类文本的分词器吗?
我假设您指的是分词器的 .flex
文件?
您需要根据此规范生成新的 Java 代码,然后才能再次构建。使用 flexeverything
Ant 构建任务(参见我们的 build spec)。
您还可以从 CMU 的 Noah Smith 小组中找到 Twokenize
useful. This is a self-contained tokenizer for tweets. It's part of the TweetNLP package。 (请注意,此代码是 GPL v2。)