NER Stanford 可以调用 java 文件吗?
Can NER Stanford called in java file?
我尝试从带有 Stanford Named Entity Recognizer (NER) and Stanford Log-linear Part-Of-Speech Tagger 的文本中给出 NER 和 POS 标签。
举个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 Stanford,我必须在命令行中 运行:
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 的文件中调用 Stanford NER(file.java)?除了命令行之外,还有什么方法可以调用 Stanford 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);
希望对您有所帮助。
因为我们中的一些人可能需要 tagged-string 而不是直接打印到控制台,这里是相同的代码:
public void doTagging(CRFClassifier model, String input) {
input = input.trim();
System.out.println(input + "=>" + model.classifyToString(input));
}
希望对您有所帮助。
如果您需要有关如何在 jave 中使用 Stanford NER 的完整代码,这里有一个很好的博客:
https://dataturks.com/blog/stanford-core-nlp-ner-training-java-example.php?s=so
我尝试从带有 Stanford Named Entity Recognizer (NER) and Stanford Log-linear Part-Of-Speech Tagger 的文本中给出 NER 和 POS 标签。
举个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 Stanford,我必须在命令行中 运行:
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 的文件中调用 Stanford NER(file.java)?除了命令行之外,还有什么方法可以调用 Stanford 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);
希望对您有所帮助。
因为我们中的一些人可能需要 tagged-string 而不是直接打印到控制台,这里是相同的代码:
public void doTagging(CRFClassifier model, String input) {
input = input.trim();
System.out.println(input + "=>" + model.classifyToString(input));
}
希望对您有所帮助。
如果您需要有关如何在 jave 中使用 Stanford NER 的完整代码,这里有一个很好的博客:
https://dataturks.com/blog/stanford-core-nlp-ner-training-java-example.php?s=so