java - NER斯坦福可以在java文件中调用吗?

标签 java stanford-nlp named-entity-recognition pos-tagger

我尝试从文本中给出 NER 和 POS 标签 Stanford Named Entity Recognizer (NER)Stanford Log-linear Part-Of-Speech Tagger .

让我给你举一个 POStag 的例子

import edu.stanford.nlp.tagger.maxent.MaxentTagger;

public class POSTag {
    static MaxentTagger tagger =  new MaxentTagger("english_language_pos.tagger");

    public static void main(String[] args) throws IOException{
        String text = "Sarah and I go to Samsung office in Korea."
        String tagged = tagger.tagString(text);

        System.out.println(tagged);
    }
}

输出:

Sarah_NNP and_CC I_PRP go_VBP to_TO Samsung_NNP office_NN in_IN Korea_NNP ._.  

对于 NER 斯坦福大学,我必须在命令行中运行:

java -mx500m -cp stanford-ner-3.5.2.jar edu.stanford.nlp.ie.crf.CRFClassifier -loadClassifier indonesian_language_ner.gz -textFile E:/file.txt > E:/file_ner.txt

我的问题是如何在带有 java 扩展名(file.java)的文件中调用斯坦福 NER?除了从命令行之外,还有什么方法可以调用斯坦福 NER 吗? 或者我可以使用任何其他工具或库来提供从 java 文件调用的 NER?

*****编辑:
我需要 NER 的输出变成这样:

Sarah_PERSON and_O I_O go_O to_O Samsung_ORGANIZATION office_O in_O Korea_PLACE ._O 

*****编辑

**仅供引用:我使用 Windows 8.1

最佳答案

你可以这样做:

    String model = "english.all.3class.distsim.crf.ser.gz";
    String text = "file.txt";

    AbstractSequenceClassifier<CoreLabel> classifier = CRFClassifier.getClassifier(model);
    classifier.classifyAndWriteAnswers(text);

希望对您有所帮助。

关于java - NER斯坦福可以在java文件中调用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36594369/

相关文章:

nlp - 斯坦福 CoreNLP 命名实体识别如何捕获 5 英寸、5 英寸、5 英寸、5 英寸等测量值

c# - 是否有用于匹配(语法分析)树中模式的 C# 实用程序?

java - 当我将扫描仪的输入读入 ArrayList 时,为什么会出现 NullPointerException?

java - java中如何删除文件中的空行

nlp - 共指解析是否需要 NER?

java - JAVA 中字符串列表的机器学习分类,没有任何上下文围绕它们

facebook-graph-api - 识别印度名字的NER模型

nlp - 如何识别光学字符识别 (OCR) 输出的文本中的实体?

java - HttpSessionListener (sessionCreated/destroyed) - 奇怪的行为

java - 解析 JsonObject 时出现问题 - 错误 'String cannot be converted to JSONObject'