依赖关系使用python

时间:2019-01-31 02:49:24

标签: parsing dependencies stanford-nlp

我正在尝试解析大型txt文件(大约2000句)。当我想设置model_path时,得到以下提示:

NLTK无法找到stanford-parser.jar!设置CLASSPATH   环境变量。 而且,当我将CLASSPATH设置为此文件时,还会出现另一条消息: NLTK无法找到stanford-parser-(\ d +)(。(\ d +))+-models.jar!   设置CLASSPATH环境变量。

您能帮我解决吗? 这是我的代码:

  
    
      

导入nltk

             

从nltk.parse.stanford导入StanfordDependencyParser

             

dependency_parser = StanfordDependencyParser(model_path =“ edu \ stanford \ lp \ models \ lexparser \ englishPCFG.ser.gz”)

    
  

================================================ ===========================   NLTK无法找到stanford-parser.jar!设置CLASSPATH   环境变量。

有关更多信息,请访问stanford-parser.jar,请参阅:

https://nlp.stanford.edu/software/lex-parser.shtml

  
    
      

导入操作系统

             

os.environ ['CLASSPATH'] =“斯坦福-corenlp-full-2018-10-05 / *”

             

dependency_parser = StanfordDependencyParser(model_path =“ edu \ stanford \ lp \ models \ lexparser \ englishPCFG.ser.gz”)

    
  

================================================ ===========================   NLTK无法找到stanford-parser.jar!设置CLASSPATH   环境变量。

有关更多信息,请访问stanford-parser.jar,请参阅:

https://nlp.stanford.edu/software/lex-parser.shtml

  
    
      

os.environ ['CLASSPATH'] =“ stanford-corenlp-full-2018-10-05 / stanford-parser-full-2018-10-17 / stanford-parser.jar”

    
  

>>> dependency_parser = StanfordDependencyParser(model_path =“ stanford-corenlp-full-2018-10-05 / stanford-parser-full-2018-10-17 / edu / stanford / nlp / models / lexparser / englishPCFG.ser .gz“)

NLTK无法找到stanford-parser-(\ d +)(。(\ d +))+-models.jar!   设置CLASSPATH环境变量。

有关stanford-parser-(\ d +)(。(\ d +))+-models.jar的更多信息,请参见:     https://nlp.stanford.edu/software/lex-parser.shtml

1 个答案:

答案 0 :(得分:0)

您应该获得Python固有的新stanfordnlp依赖关系解析器! 它在CPU上的运行速度将比GPU慢,但仍应运行得相当快。

只需运行pip install stanfordnlp即可安装。

import stanfordnlp
stanfordnlp.download('en')   # This downloads the English models for the neural pipeline
nlp = stanfordnlp.Pipeline() # This sets up a default neural pipeline in English
doc = nlp("Barack Obama was born in Hawaii.  He was elected president in 2008.")
doc.sentences[0].print_dependencies()

还有一个有用的命令行工具:

python -m stanfordnlp.run_pipeline -l en example.txt

此处有完整的详细信息:https://stanfordnlp.github.io/stanfordnlp/

GitHub:https://github.com/stanfordnlp/stanfordnlp