Closed ljk99 closed 2 years ago
原来自动调取jieba分词,但是实际运行结果是,分词失败,出来一大串没标点的中文,根本不是词
Can you provide more details? What source are you scraping with newspaper?
感谢回复! 新闻源如下: http://gd.sina.com.cn/news/2021-12-31/detail-ikyamrmz2320713.shtml 任意一个中文都不能正常分词,下面是我的代码
import newspaper from newspaper import Article from newspaper import Config as NewspaperConfig conf = NewspaperConfig() conf._language = 'zh'
print(conf.dict) url = 'http://gd.sina.com.cn/news/2021-12-31/detail-ikyamrmz2320713.shtml'
a = Article(url, language='zh', config=conf, keep_article_html=True) # Chinese
a.download() a.parse()
a.nlp()
print(a.keywords)
下面是结果: ['羊城晚报讯', '预计到发旅客1537万人次', '记者李志文通讯员戴鸣摄影报道2022年元旦假期铁路旅客运输期限为12月31日至2022年1 月3日共4天广州南站预计到发旅客1537万人次其中预计发送旅客837万人次日均发送209万人次预计到达旅客700万人次日均到达175万人次1月1日将迎来旅客出行高峰预计发送265万人次1月3日将迎来返程客流高峰预计到达229万人次从中高风险地区到达广州南站的旅客需进行核酸检测后方可离开为满足旅客出行需求广州南站元旦假期实行高峰列车运行图从目前售票情况来看除12月31日广州南站开往长沙湛江潮汕深圳地区的车票较为紧张外其余方向均有余票尚未购到车票的旅客请使用12306候补购票功能广州南站将实时根据候补大数据进行分析 精准增开热门方向列车旅客在刷脸进站出行提醒元旦假期期间客流量将有所增长铁路部门提醒广大旅客1出行前请及时了解始发地及目的 地疫情防控政策预留足够时间进站乘车进站乘车时请提前出示健康码全程佩戴好口罩排队时与周围旅客保持1米社交距离2去往北京方向的旅客进站乘车时需查验48小时核酸检测阴性证明和北京健康宝32021年12月27日至2022年1月22日1300至1700广州南站一层西出口广场可免费接种新冠疫苗有需要的旅客可自行前往4从中高风险地区到达广州南站的旅客需要集中统一进行核酸检测后方可离开敬请广大旅客配合 和理解5如购买的车票为电子客票无需换取纸质车票持购票时所使用的身份证原件即可检票乘车', '广州南站元旦假期']
看着结果是没有去用结巴分词
调试之后,发现article.py有使用过jieba分词,nlp.py没有使用过jieba分词,但关键词的提取是通过nlp来实现,我再追踪下article.py的jieba分词到底干了些什么事
追踪到了,jieba分词只是在article.py 这里计算stopword,但没有计算keyword,也没有再nlp.py那里用来分词,要自己修改一下nlp.py的下列函数 def split_words(text): """Split a string into array of words """ try: text = re.sub(r'[^\w ]', '', text) # strip special chars return [x.strip('.').lower() for x in text.split()] except TypeError: return None
搞定了,现在的jieba分词自带关键词功能,完全没必要用newpaper的关键词
如何在newspaper设置jieba来分词呢?