stanford-nlp - 使用斯坦福阿拉伯语分割器的麻烦
问题描述
我在 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:\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。
解决方案
我建议下载完整的斯坦福 CoreNLP 包。
从这里下载斯坦福 CoreNLP:https ://stanfordnlp.github.io/CoreNLP/download.html
这应该最终在一个目录中,如:
C:\Users\myusername\stanford-corenlp-full-2018-10-05
从同一链接下载阿拉伯语模型 jar,并将其移动到 Stanford CoreNLP 目录
C:\Users\myusername\stanford-corenlp-full-2018-10-05
设置 CLASSPATH 以包括包含您需要的所有 *.jar 文件的目录。
set CLASSPATH=C:\Users\myusername\stanford-corenlp-full-2018-10-05\*;
在示例文本上运行管道(确保在运行此命令时位于示例文件所在的目录中)
java -Xmx5g edu.stanford.nlp.pipeline.StanfordCoreNLP -props StanfordCoreNLP-arabic.properties -file example.txt -outputFormat text
example.txt.out
当此命令完成时,您应该得到分段输出。
我无法访问 Windows 机器,所以如果我的答案不起作用,请告诉我,我会修复它。我将尝试在我们的网站上放置一些有关使用 Windows 的文档。
推荐阅读
- php - 如何在不安装 ui 的情况下为 api 制作 (make: auth) Laravel 6
- git - 在 bitbucket 管道中使用 git submodule update --init
- java - 从特定 USB 端口捕获键盘输入
- java - 如何使用 SLF4J 和 Log4j 在日志消息中包含标记
- python - Python,操作错误,想把dataframe做为计算标准,包含:string, integer, float
- postgresql - 无法从 docker-compose 启动 postgres docker 容器
- python - 为什么 python 元类在这段代码中不起作用?
- c# - 以 Xamarin 形式为 OCR 捕获相机实时帧
- azure - 使用 ADF,如何将文件名加载到 SQL Server 表中?
- google-apps-script - 谷歌表在页面加载或刷新时重置单元格值