使用 Stanford Arabic Segmenter 的问题

Troubles using Stanford Arabic Segmenter

我在 Windows10 中使用斯坦福阿拉伯语分段器 运行 时遇到问题,因为每当我尝试处理自述文件中提到的命令时,它都无法加载分段器 data/arabic-segmenter-atb+bn+arztrain.ser.gz

我对Java不是很熟悉,所以我什至不知道我是否正确理解了类路径问题。猜猜,我没有。另外,我发现自述说明有点令人困惑。

Loaded ArabicTokenizer with options: null
loadClassifier=data/arabic-segmenter-atb+bn+arztrain.ser.gz
textFile=C:\Users\vmumm\OneDrive\Ulmo\Nizar\OLD\complete_NQ_new_April2019.txt
featureFactory=edu.stanford.nlp.international.arabic.process.StartAndEndArabicSegmenterFeatureFactory
Exception in thread "main" edu.stanford.nlp.io.RuntimeIOException: Failed to load segmenter data/arabic-segmenter-atb+bn+arztrain.ser.gz
        at edu.stanford.nlp.international.arabic.process.ArabicSegmenter.loadSegmenter(ArabicSegmenter.java:466)
        at edu.stanford.nlp.international.arabic.process.ArabicSegmenter.getSegmenter(ArabicSegmenter.java:629)
        at edu.stanford.nlp.international.arabic.process.ArabicSegmenter.main(ArabicSegmenter.java:532)
Caused by: java.io.IOException: Unable to open "data/arabic-segmenter-atb+bn+arztrain.ser.gz" as class path, filename or URL
        at edu.stanford.nlp.io.IOUtils.getInputStreamFromURLOrClasspathOrFileSystem(IOUtils.java:480)
        at edu.stanford.nlp.ie.AbstractSequenceClassifier.loadClassifier(AbstractSequenceClassifier.java:1503)
        at edu.stanford.nlp.ie.crf.CRFClassifier.getClassifier(CRFClassifier.java:2939)
        at edu.stanford.nlp.international.arabic.process.ArabicSegmenter.loadSegmenter(ArabicSegmenter.java:464)

我想,我只需要一个如何 运行 分段器的简单指南 - 假设我通常不使用 Java。

我建议下载完整的 Stanford CoreNLP 包。

  1. 从这里下载 Stanford CoreNLP:https://stanfordnlp.github.io/CoreNLP/download.html

  2. 这应该在如下目录中结束:

    C:\Users\myusername\stanford-corenlp-full-2018-10-05
    
  3. 从同一个 link 下载阿拉伯语模型 jar,并将其移动到 Stanford CoreNLP 目录 C:\Users\myusername\stanford-corenlp-full-2018-10-05

  4. 设置 CLASSPATH 以包含包含您需要的所有 *.jar 文件的目录。

    set CLASSPATH=C:\Users\myusername\stanford-corenlp-full-2018-10-05\*;
    
  5. 运行 示例文本上的管道(当您 运行 此命令时确保位于示例文件所在的目录中)

    java -Xmx5g edu.stanford.nlp.pipeline.StanfordCoreNLP -props StanfordCoreNLP-arabic.properties -file example.txt -outputFormat text
    

当此命令完成时,您应该在 example.txt.out 中获得分段输出。

我无法访问 Windows 机器,所以如果我的回答不起作用,请告诉我,我会修复它。我将尝试在我们的网站上提供一些关于使用 Windows.

的文档