本文包含用于嘈杂频道中拼写错误的混淆矩阵。它描述了如何根据条件属性纠正错误。
条件概率计算在第2页的左栏中。在第2页的脚注4(左栏)中,作者说:“字符矩阵很容易复制,因此附录中将其省略。” 我不知道如何复制它们!
如何复制它们?我需要原始语料库吗?或者,作者是说他们可以从论文本身的材料中重新计算出来?
我正在试验Stanford CoreNLP库,我想序列化主要的StanfordCoreNLP管道对象,即使它抛出java.io.NotSerializableException.
全文:每当我运行我的实现时,将管道注释器和分类器加载到内存中需要大约15秒.内存中的最终过程大约为600MB(很容易小到可以存储在我的情况下).我想在第一次创建它之后保存这个管道,所以我可以在之后将它读入内存.
但是它会抛出NotSerializableException.我尝试创建一个实现Serializable的简单子类,但是StanfordCoreNLP具有不实现此接口的注释器和分类器属性,并且我不能为所有这些子类创建子类.
是否有任何Java库将序列化不实现Serializable的对象?我想它必须通过它的属性递归,并为任何类似的对象做同样的事情.
我试过的序列化代码:
static StanfordCoreNLP pipeline;
static String file = "/Users/ME/Desktop/pipeline.sav";
static StanfordCoreNLP pipeline() {
if (pipeline == null) {
try {
FileInputStream saveFile = new FileInputStream(file);
ObjectInputStream read = new ObjectInputStream(saveFile);
pipeline = (StanfordCoreNLP) read.readObject();
System.out.println("Pipeline loaded from file.");
read.close();
} catch (FileNotFoundException e) {
System.out.println("Cached pipeline not found. Creating new pipeline...");
Properties props = new Properties();
props.put("annotators", "tokenize, ssplit, pos, lemma, ner, parse, dcoref");
pipeline = new StanfordCoreNLP(props);
savePipeline(pipeline);
} catch (IOException e) {
System.err.println(e.getLocalizedMessage()); …Run Code Online (Sandbox Code Playgroud) 一个简单的问题:我们什么时候可以阻止或限制单词的使用?词干对所有nlp进程都有帮助吗?或者在某些应用程序中使用完整形式的单词可能会导致更好的准确性或准确性?
我正在使用Windows 8,并使用pyDev在eclipse中运行python.
我从网站上安装了Stanford coreNLP(python版本):https: //github.com/relwell/stanford-corenlp-python
当我尝试导入corenlp时,我收到以下错误消息.
Traceback (most recent call last):
File "C:\Users\Ghantauke\workspace\PythonTest2\test.py", line 1, in <module>
import corenlp
File "C:\Python27\lib\site-packages\corenlp\__init__.py", line 13, in <module>
from corenlp import StanfordCoreNLP, ParserError, TimeoutError, ProcessError
File "C:\Python27\lib\site-packages\corenlp\corenlp.py", line 28, in <module>
import pexpect
File "C:\Python27\lib\site-packages\pexpect.py", line 85, in <module>
support it. Pexpect is intended for UNIX-like operating systems.""")
ImportError: No module named resource
A critical module was not found. Probably this operating system does not
support it. Pexpect is intended for …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用预制英语模型的麦芽解析器.但是,我不知道如何将英文句子的文本语料库转换为Malt Parser操作所必需的CoNLL格式.我在网站上找不到任何文档.我该怎么办呢?
更新.我指的是这个帖子Create .conll文件作为Stanford Parser的输出来创建一个.conll.但是,这是使用Stanford Parser.
我正在尝试使用Stanford CoreNLP作为我的java程序中的库.我使用IntelliJ作为IDE.我试图测试库,所以我写了这段代码:
import edu.stanford.nlp.pipeline.StanfordCoreNLP;
import java.util.Properties;
/**
* Created by Benjamin on 15/5/4.
*/
public class SentimentAnaTest {
public static void main(String[] args) {
Properties props = new Properties();
props.setProperty("annotators", "tokenize, ssplit, pos, lemma, ner, parse, dcoref");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
}
}
Run Code Online (Sandbox Code Playgroud)
它显示如下错误:
Adding annotator tokenize
TokenizerAnnotator: No tokenizer type provided. Defaulting to PTBTokenizer.
Adding annotator ssplit
Adding annotator pos
Exception in thread "main" java.lang.RuntimeException: edu.stanford.nlp.io.RuntimeIOException: Unrecoverable error while loading a tagger model
at edu.stanford.nlp.pipeline.AnnotatorFactories$4.create(AnnotatorFactories.java:292)
at edu.stanford.nlp.pipeline.AnnotatorPool.get(AnnotatorPool.java:85)
at …Run Code Online (Sandbox Code Playgroud) 我试图为段落中的每个单词找到正确的词性.我正在使用Stanford POS Tagger.但是,我陷入了困境.
我想从段落中识别介词.
Penn Treebank Tagset说:
IN Preposition or subordinating conjunction
Run Code Online (Sandbox Code Playgroud)
如何,我能确定当前的词是介词还是从属词.在这种情况下,如何从段落中仅提取介词?
我有800万维基百科文章要解析.我想运行7个操作:tokenize,ssplit,pos,lemma,ner,parse,dcoref.每份文件大约需要20秒.在此速率中,需要数月才能在单线程中解析整个数据集.有一个'nthreads'选项可以同时解析连续的句子.但共同参考分析仪不能在单句水平上工作.我可以将文档分成多个桶并同时在每个桶上运行corenlp,但这很耗费资源.有没有更简单的方法在文档级别(而不是句子)运行多线程corenlp?(我有100 GB RAM和50个核心).
我是NLP的新手.我正在尝试一个示例程序,LexicalizedParser但无法找到该模型.
String parseModel = "...../models/lexparser/englishPCFG.ser.gz";
LexicalizedParser lecicalizedParser = LexicalizedParser.loadModel(parseModel);
Run Code Online (Sandbox Code Playgroud)
我stanford-core-nlp-3.5.2.jar在示例Java应用程序的构建路径中也有必需的和ner jar.
我尝试引用核心jar的绝对路径并加载但不能.:(
如何从程序代码中引用此模型的确切位置?
非常感谢您的帮助和帮助!
我正在尝试使用core-nlps的DocumentPreprocessor方法将给定的文本分成句子。
下面是我正在使用的代码。
List<String> splitSentencesList = new ArrayList<>();
Reader reader = new StringReader(inputText);
DocumentPreprocessor dp = new DocumentPreprocessor(reader);
for(List<HasWord> sentence :dp){
splitSentencesList.add(Sentence.listToString(sentence).toLowerCase().replace(" .", ""));}
Run Code Online (Sandbox Code Playgroud)
这适用于大多数情况。但是,我们如何处理句子中的连词?
例如:
I like coffee and donuts for my breakfast.
Run Code Online (Sandbox Code Playgroud)
理想情况下,应进一步处理为:
I like coffee for my breakfast.
I like donuts for my breakfast.
Run Code Online (Sandbox Code Playgroud)
一种选择是做一个基于正则表达式的规则来进一步划分它们。在core-nlp中是否有任何内置方法可以实现此目的。
任何对此的指针表示赞赏。
stanford-nlp ×10
nlp ×5
java ×4
parsing ×2
linguistics ×1
multicore ×1
opennlp ×1
pos-tagger ×1
python ×1
regex ×1
wikipedia ×1