使用斯坦福阿拉伯语分段器的麻烦



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

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

Loaded ArabicTokenizer with options: null
loadClassifier=data/arabic-segmenter-atb+bn+arztrain.ser.gz
textFile=C:UsersvmummOneDriveUlmoNizarOLDcomplete_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。

我建议下载完整的斯坦福CoreNLP软件包。

  1. 从这里下载斯坦福核心NLP: https://stanfordnlp.github.io/CoreNLP/download.html

  2. 这应该最终位于如下目录中:

    C:Usersmyusernamestanford-corenlp-full-2018-10-05
    
  3. 从同一链接下载阿拉伯语模型jar,并将其移至斯坦福CoreNLP目录C:Usersmyusernamestanford-corenlp-full-2018-10-05

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

    set CLASSPATH=C:Usersmyusernamestanford-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 的文档。

最新更新