我想制作一个日历应用程序,它比现有的那些更好地接受纯英文输入。我发现斯坦福的 NLP 看起来很酷,但我想知道它是否对此类任务有帮助。我找不到人们使用它做任何事情的例子。应用程序真的应该理解语言吗?似乎存在的自然英语日历正在寻找关键字/模式并尝试以这种方式解析,但我认为应用程序可以做得更好。
我真正的问题是:有人能告诉我如何找到使用 NLP 或不同(公开可用的)英语解析器来制作真正有用的应用程序的人的例子吗?
我正在努力从出现在英文报纸上的各种广告中提取人名。
但是,我注意到在提取其中存在的名称之前,我需要确定广告的边界,因为我只需要提取第一个出现的名称。我从斯坦福 NLP 开始。我成功提取了名称。但我陷入了识别段落边界的困境。
有没有办法识别段落边界。?
我已经从http://nlp.stanford.edu/software/corenlp.shtml#Download下载并安装了所需的jar文件.
我已经包含了五个jar文件
Satnford-postagger.jar
斯坦福大学psotagger-3.3.1.jar
斯坦福大学psotagger-3.3.1.jar,javadoc.jar
斯坦福大学psotagger-3.3.1.jar-src.jar
斯坦福大学corenlp-3.3.1.jar
而代码是
public class lemmafirst {
protected StanfordCoreNLP pipeline;
public lemmafirst() {
// Create StanfordCoreNLP object properties, with POS tagging
// (required for lemmatization), and lemmatization
Properties props;
props = new Properties();
props.put("annotators", "tokenize, ssplit, pos, lemma");
/*
* This is a pipeline that takes in a string and returns various analyzed linguistic forms.
* The String is tokenized via a tokenizer (such as PTBTokenizerAnnotator),
* and then other sequence model style …Run Code Online (Sandbox Code Playgroud) 我们想在俄罗斯语料库上训练斯坦福神经网络依赖解析器,有什么关于如何做的提示吗?论文中描述了超参数,但是了解如何准备训练数据(注释,特别是如何创建 word2vec 注释)会很好。非常感谢任何帮助或对某些文档的引用!
谢谢!
我正在尝试使用Stanford依赖解析器。我尝试使用以下命令从Windows上的命令行运行解析器以提取依赖项:
java -mx100m -cp "stanford-parser.jar" edu.stanford.nlp.trees.EnglishGrammaticalStructure -sentFile english-onesent.txt -collapsedTree -CCprocessed -parserFile englishPCFG.ser.gz
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Error occurred during initialization of VM
Too small initial heap
Run Code Online (Sandbox Code Playgroud)
我将内存大小更改为-mx1024,-mx2048以及-mx4096。它没有任何改变,错误仍然存在。
我想念什么?
我试图用Stanford CoreNLP工具分析一些法语文本(这是我第一次尝试使用任何StanfordNLP软件)
为此,我已经下载了v3.6.0 jar和相应的法语模型.
然后我运行服务器:
java -mx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer
Run Code Online (Sandbox Code Playgroud)
如本回答所述,我将API称为:
wget --post-data 'Bonjour le monde.' 'localhost:9000/?properties={"parse.model":"edu/stanford/nlp/models/parser/nndep/UD_French.gz", "annotators": "parse", "outputFormat": "json"}' -O -
Run Code Online (Sandbox Code Playgroud)
但我得到以下日志+错误:
[pool-1-thread-1] INFO edu.stanford.nlp.pipeline.StanfordCoreNLP
Adding annotator tokenize
[pool-1-thread-1] INFO edu.stanford.nlp.pipeline.TokenizerAnnotator - TokenizerAnnotator: No tokenizer type provided. Defaulting to PTBTokenizer.
[pool-1-thread-1] INFO edu.stanford.nlp.pipeline.StanfordCoreNLP - Adding annotator ssplit
[pool-1-thread-1] INFO edu.stanford.nlp.pipeline.StanfordCoreNLP - Adding annotator parse
[pool-1-thread-1] INFO edu.stanford.nlp.parser.common.ParserGrammar - Loading parser from serialized file edu/stanford/nlp/models/parser/nndep/UD_French.gz ...
edu.stanford.nlp.io.RuntimeIOException: java.io.StreamCorruptedException: invalid stream header: 64696374
at edu.stanford.nlp.parser.common.ParserGrammar.loadModel(ParserGrammar.java:188)
at …Run Code Online (Sandbox Code Playgroud) 我正在尝试将预先训练的 Google 新闻 word2vec 模型适应我的特定领域。对于我正在查看的领域,已知某些单词彼此相似,因此在理想的世界中,这些单词的 Word2Vec 表示应该代表它。我知道我可以在特定领域数据的语料库上训练预训练模型来更新向量。
但是,如果我确定某些单词非常相似并且应该放在一起,那么我是否可以将该约束合并到 word2vec 模型中?在数学上,我想在 word2vec 的损失函数中添加一个术语,如果我知道相似的两个在向量空间中的位置彼此不靠近,则该函数会提供惩罚。有没有人对如何实现这一点有建议?这是否需要我解压 word2vec 模型,或者是否有办法将附加项添加到损失函数中?
我在检测以小写字母开头的命名实体时遇到问题。如果我只用小写单词训练模型,那么准确率是合理的;但是,当模型使用完全大写的标记或什至是小写和大写混合训练时,结果非常糟糕。我尝试了斯坦福 NLP 组类 NERFeatureFactory提供的一些功能以及各种句子,但无法获得预期的结果。我面临的问题的一个例子如下:
“阿里在密歇根大学学习,现在他为我们海军工作。”
我希望模型能够识别实体如下:
如果用作训练数据的 .TSV 文件只包含小写字母,那么我可以得到上述结果,否则结果令人惊讶。
任何帮助都受到高度赞赏。
NLP 解析器有没有办法识别列表?
例如,“老虎、狮子和大猩猩”应该被标识为一个列表
(我不需要将它标识为一个动物列表;一个列表就足够了)。
我的最终目标是将一个常用动词/单词链接到列表中的所有项目。例如,考虑句子“他找到了一支笔、一本书和一个手电筒”。在这里,“发现”动词应与所有 3 个项目相关联。
另一个例子,“他的癌症、贫血和糖尿病检测呈阴性”。在这里,“阴性”一词应该与三种疾病联系在一起。
任何开源 NLP 软件包(如 OpenNLP 或 Stanford CoreNLP)都可以做到这一点吗?还有其他解决办法吗?
编辑:
就像在其中一个答案中提到的那样,我最初的想法是手动解析列表并通过查看逗号的位置等来查找项目。
但后来我发现了斯坦福 NLP 的 OpenIE 模型。这似乎做得很好。
例如,“He has a pen and a book”给出了 2 个关系(He;has;a pen)和(He;has;a book)。
该模型的问题在于它不适用于不完整的句子,例如“has a pen and a book”。
(据我了解,这是因为 OpenIE 只能提取三元组)
当涉及否定时它也会失败。例如,“他没有笔”。
这些问题有解决方案吗?目前可用于信息提取的最佳解决方案是什么?
我有一堆格式错误的文本,其中缺少很多标点符号。我想知道是否有任何方法可以在缺少句点、分号、大写等的情况下将文本分割成句子。
例如,考虑这样一段话:“狮子被称为森林之王,它的容貌威严它吃肉它可以跑得很快,狮子的吼声很有名”。
这段文字应该被分割成单独的句子:
这可以做到还是不可能?任何建议都非常感谢!