当前位置: 首页 > 知识库问答 >
问题:

斯坦福nlp中的NER模型训练

萧懿轩
2023-03-14

我一直在尝试与斯坦福核心NLP合作。我希望训练我自己的NER模型。从论坛上的SO和官网上描述了如何使用一个属性文件来实现这一点。我将如何通过API实现它?。

Properties props = new Properties();
props.setProperty("annotators", "tokenize, ssplit, pos, lemma, ner, parse, sentiment, regexner");
props.setProperty("regexner.mapping", "resources/customRegexNER.txt");

StanfordCoreNLP pipeline = new StanfordCoreNLP(props);      

String processedQuestion = "Who is the prime minister of Australia?"

//Annotation annotation = pipeline.process(processedQuestion);
Annotation document = new Annotation(processedQuestion);
pipeline.annotate(document);
List<CoreMap> sentences = document.get(SentencesAnnotation.class);
for (CoreMap sentence : sentences) {

    // To get the tokens for the parsed sentence
    for (CoreMap tokens : sentence.get(TokensAnnotation.class)) {           
        String token = tokens.get(TextAnnotation.class);
        String POS = tokens.get(PartOfSpeechAnnotation.class);      
        String NER = tokens.get(NamedEntityTagAnnotation.class);            
        String Sentiment = tokens.get(SentimentClass.class);            
        String lemma = tokens.get(LemmaAnnotation.class);
  1. 怎么做

共有1个答案

毋宪
2023-03-14

我认为它可以与该代码一起工作:

val props = new Properties()
  props.put("annotators", "tokenize, ssplit, pos, lemma, ner, regexner")
  props.put("ner.model", "/your/path/ner-model.ser.gz");
  val pipeline = new StanfordCoreNLP(props)
 类似资料:
  • 我曾使用grep和awk从斯坦福CRF-NER的“内联XML”中提取英语文本中的命名实体,我希望在其他人类语言中使用相同的更大工作流。 我一直在尝试法语(西班牙语似乎给我带来了一个Java错误,这是另一个故事),并使用我得到标准文本输出,每个句子都有各种类型的注释,包括正确组合在一起的多单词实体,如下所示: 我知道解析它是可能的,但当我真的只是想要整个文件中的实体列表时,这似乎浪费了很多处理。 我

  • 试图运行示例,但我一直无法打开“english-left3words-distsim.tagger”文件可能丢失。文件没有丢失,目录指向模型jar文件的位置,路径:edu\stanford\nlp\模型\pos-tagger\english-left3word在jar文件中是正确的。 我使用3.7.0,安装从nuget在视觉工作室2015. 代码如下: 我确实在Stack上看到了一个类似的问题,他

  • Stanford NLP是否为提供了一种训练方法,使其能够用自己的语料库进行训练,并创建自己的句子拆分模型? 我正在与德语句子工作,我需要创建我自己的句子拆分任务的德语模型。因此,我需要训练句子拆分器。 我有办法做到吗?

  • 我使用StanfordNLP来标记用智能手机编写的一组消息。这些文本有很多拼写错误,不遵守标点符号规则。通常,空格缺失会影响标记化。 例如,以下句子漏掉了“California.This”和“university,founded”中的空格。 斯坦福大学位于加利福尼亚州,这所大学是一所伟大的大学,创建于1891年。 标记器返回: {“斯坦福”、“大学”、“是”、“位于”、“加利福尼亚州”。这个”、“

  • 我是Java和Stanford NLP工具包的新手,并试图在一个项目中使用它们。具体地说,我尝试使用Stanford Corenlp toolkit来注释文本(使用Netbeans而不是命令行),并尝试使用http://nlp.Stanford.edu/software/Corenlp.shtml#Usage上提供的代码(使用Stanford Corenlp API)。问题是:有人能告诉我如何在文

  • 我从这里学习了如何用Java定制Stanford NER(命名实体识别器): http://nlp.stanford.edu/software/crf-faq.shtml#a 但是我正在使用Python开发我的项目,在这里我需要使用一些自定义实体来训练我的分类器。 我寻找了很多解决方案,但没有找到。知道吗?如果不可能,是否有其他方法可以使用自定义实体(即nltk或python中的其他实体)来训练分