我使用StanfordNLP来标记用智能手机编写的一组消息。这些文本有很多拼写错误,不遵守标点符号规则。通常,空格缺失会影响标记化。
例如,以下句子漏掉了“California.This”和“university,founded”中的空格。
斯坦福大学位于加利福尼亚州,这所大学是一所伟大的大学,创建于1891年。
标记器返回:
{“斯坦福”、“大学”、“是”、“位于”、“加利福尼亚州”。这个”、“大学”、“是”、“a”、“伟大”、“大学”、“创立”、“1891年”、“1891年”
正如所观察到的,除了“California.This”(我希望有三个代币{“California”)“这个”})。我查看了标记化规则,发现单词的正则表达式接受单词中用于句子结尾的标点符号。
单词={LETTER}({LETTER}|{DIGIT})([.!?]{字母}({字母}|{数字}))*
我删除了最后一部分并重新编译,但标记器仍然没有改变它的行为。
有人知道如何避免这种不必要的行为吗?或者有人可以给我指出另一个标记器,它可以很好地处理这种类型的文本?
我猜你指的是。flex
标记器的文件?
在再次构建之前,需要根据该规范生成新的Java代码。使用flexeverything
Ant构建任务(参见我们的构建规范)。
您可能还会发现Twokenize
很有用。这是一个独立的推文标记器。这是芝加哥大学诺亚·史密斯小组推特NLP软件包的一部分。(请注意,此代码是GPL v2。)
试图运行示例,但我一直无法打开“english-left3words-distsim.tagger”文件可能丢失。文件没有丢失,目录指向模型jar文件的位置,路径:edu\stanford\nlp\模型\pos-tagger\english-left3word在jar文件中是正确的。 我使用3.7.0,安装从nuget在视觉工作室2015. 代码如下: 我确实在Stack上看到了一个类似的问题,他
我曾使用grep和awk从斯坦福CRF-NER的“内联XML”中提取英语文本中的命名实体,我希望在其他人类语言中使用相同的更大工作流。 我一直在尝试法语(西班牙语似乎给我带来了一个Java错误,这是另一个故事),并使用我得到标准文本输出,每个句子都有各种类型的注释,包括正确组合在一起的多单词实体,如下所示: 我知道解析它是可能的,但当我真的只是想要整个文件中的实体列表时,这似乎浪费了很多处理。 我
我是Java和Stanford NLP工具包的新手,并试图在一个项目中使用它们。具体地说,我尝试使用Stanford Corenlp toolkit来注释文本(使用Netbeans而不是命令行),并尝试使用http://nlp.Stanford.edu/software/Corenlp.shtml#Usage上提供的代码(使用Stanford Corenlp API)。问题是:有人能告诉我如何在文
我找到了德语解析和词性标记模型,它们与斯坦福核心NLP兼容。然而,我无法让德语引理化工作。有办法这样做吗?
UIMA和StanfordNLP在流水线操作之后生成输出,比如如果我们想做词性标记,那么在输入文本中首先进行标记化,然后进行词性标记。 我想使用UIMA的标记化,并在Stanford CoreNLP的POS标记器中使用该标记。但是Stanford CoreNLP的POS标记器需要在POS标记器之前运行标记器。 那么,是否可以在同一管道中使用不同的API?是否可以同时使用UIMA标记器和Stanfo
我正在注释和分析一系列文本文件。 pipeline.annotate方法每次读取文件时都会变得越来越慢。最终,我得到了一个OutOfMemoryError。 管道初始化一次: 然后,我使用相同的管道实例处理每个文件(如SO和斯坦福大学在其他地方推荐的)。 明确地说,我希望问题出在我的配置上。但是,我确信失速和内存问题发生在pipeline.annotate(file)方法上。 在处理每个文件后,我