首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用pytextrank时Spacy中的值错误(textrank的Python实现)

使用pytextrank时Spacy中的值错误(textrank的Python实现)
EN

Stack Overflow用户
提问于 2017-07-19 07:21:15
回答 2查看 1K关注 0票数 3

我已经使用pytextrank来提取关键字。我使用下面的命令安装了pytextrank和spacy。

代码语言:javascript
复制
pip install pytextrank
pip install -U spacy
python -m spacy download en

以下是我的代码

代码语言:javascript
复制
import pytextrank
import sys

path_stage0 = jsonPath
path_stage1 = "data/json/temp/o1.json"

with open(path_stage1, 'w') as f:
    for graf in pytextrank.parse_doc(pytextrank.json_iter(path_stage0)):
        f.write("%s\n" % pytextrank.pretty_print(graf._asdict()))
        # to view output in this notebook
        print(pytextrank.pretty_print(graf))

当我尝试执行此命令时,出现以下错误

代码语言:javascript
复制
ValueError                                Traceback (most recent call last)
<ipython-input-12-07819fc6acea> in <module>()
  6 
  7 with open(path_stage1, 'w') as f:
  ----> 8     for graf in 
  pytextrank.parse_doc(pytextrank.json_iter(path_stage0)):
  9         f.write("%s\n" % pytextrank.pretty_print(graf._asdict()))
 10         # to view output in this notebook

 /home/sameera/anaconda2/lib/python2.7/site-
 packages/pytextrank/pytextrank.pyc in parse_doc(json_iter)
259                 print("graf_text:", graf_text)
260 
--> 261             grafs, new_base_idx = parse_graf(meta["id"], graf_text, base_idx)
262             base_idx = new_base_idx
263 

/home/sameera/anaconda2/lib/python2.7/site-packages/pytextrank/pytextrank.pyc in parse_graf(doc_id, graf_text, base_idx, spacy_nlp)
193     doc = spacy_nlp(graf_text, parse=True)
194 
--> 195     for span in doc.sents:
196         graf = []
197         digest = hashlib.sha1()

/home/sameera/anaconda2/lib/python2.7/site-packages/spacy/tokens/doc.pyx in __get__ (spacy/tokens/doc.cpp:9664)()
432 
433             if not self.is_parsed:
--> 434                 raise ValueError(
435                     "sentence boundary detection requires the dependency parse, which "
436                     "requires data to be installed. If you haven't done so, run: "

ValueError: sentence boundary detection requires the dependency parse, which 
requires data to be installed. If you haven't done so, run: 
python -m spacy download en
to install the data

我用的是python 2.7,anaconda 4.3,jupyter notebook和ubuntu 14.04

EN

回答 2

Stack Overflow用户

发布于 2017-07-19 07:42:08

这可能只是您将代码复制到StackOverflow的方式中的一个错误,但如果不是:

确保缩进"with“语句下面的所有内容,包括for循环。

基本上:

代码语言:javascript
复制
with open(path_stage1, 'w') as f:
    for graf in pytextrank.parse_doc(pytextrank.json_iter(path_stage0)):
        f.write("%s\n" % pytextrank.pretty_print(graf._asdict()))
        print(pytextrank.pretty_print(graf))
票数 2
EN

Stack Overflow用户

发布于 2017-09-27 00:26:53

使用pytextrank包中的requirements.txt可能比使用pip install -U spacy更好--因为spaCy正在快速发展,并且-U将安装最新版本。这些更新并不总是向后兼容的。

此外,请随时在pytextrank的GitHub代码库上发布问题:https://github.com/ceteri/pytextrank/issues

很高兴听到用法:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45178611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档