snownlp icon indicating copy to clipboard operation
snownlp copied to clipboard

文档太少了啊

Open lemonhall opened this issue 11 years ago • 44 comments

功能看上去很多,文档看上去很粗略有木有

lemonhall avatar Dec 12 '13 13:12 lemonhall

确实文档有点少,不过那个粗略的文档基本上涵盖了主要功能,目前程序还在不断修改,等写的稳定些了再补全文档吧。。。

isnowfy avatar Dec 12 '13 13:12 isnowfy

恩,我不太懂NLP,拿你这个简单做了一下豆瓣广播的情感分析,发觉效果不怎么好,看了一下代码,用得是贝叶斯和一套训练集,然后发觉可能是训练集本身让结果不是怎么好,又试了一下结合正文抽取算法,做了一下网页的keywords提取,结果发觉新浪的很多新闻,关键词抽取出来是单字,三字的人名没有被作为关键字抽取出来,作为黑箱的话,暂时还不是很好用的感觉,没有深入用,过两天用ZeroRPC替换掉你里面的分词组件,用我更熟悉的一个node.js的分词来试试,看看关键词抽取的效果会不会提高。

lemonhall avatar Dec 15 '13 03:12 lemonhall

情感分析本来就是个很难的问题,貌似用bayes确实效果不是很好,后面考虑用svm替换掉,治愈关键词我自己的感觉还可以,或许你可以在https://github.com/isnowfy/snownlp/blob/master/snownlp/normal/stopwords.txt 自己加点stopwords,把没用的单字过滤掉可能会好一些吧

isnowfy avatar Dec 15 '13 07:12 isnowfy

考虑了一下,估计也跟训练数据本身有关系,现在的数据都是买东西时的评价啥的。。。

isnowfy avatar Dec 16 '13 01:12 isnowfy

恩,所以对于外行来说。。。。你得多写一些文档,说明使用范围嘛,分词那部分我还没深究,什么CRF条件随机场这种东西我是看不懂的,我用的是node.js移植java社区的一个盘古分词组件,起码能正确的抽取去朝鲜金三胖的那位姑父的名字,其实很多关键字肯定是要优先抽取专有名词的。慢慢来,加油。。。我就是一个搞工程的,对这些复杂算法没能力搞,很遗憾。。很感谢你的这个组件。训练集什么的,看来得先自己写个插件慢慢攒了。。。而且这种东西,只能靠人工,且必须是滑动窗口法的。朋友给我介绍了情感分析的一个RNN算法的,考虑了句子的结构,原理上我懂,但是RNN谁懂啊,神经网络向来复杂,而且它那个的训练集也是22w的正向,20w的负能量,还带上了人工挑选的词汇分值表,内存消耗想必也挺可观的。你这个模块我在云端部署的时候,必须是1G内存,否则直接be killed。

工程上来说,不知道你的代码结构是怎样的,完成准确度和可靠度以及单元测试之后,再稍微考虑一下内存消耗以及可选加载这类的事情吧。。都是后话,中文的NLP库真心太少了。。。。让我们这些想做一些功能却不会算法的人觉得十分苦逼啊。尤其是看着NTK那类的库

多谢LZ

lemonhall avatar Dec 16 '13 03:12 lemonhall

你好 研究你写的代码 ,想问个弱弱的问题,在_init_.py中定义的类,怎样在外部其它文件中访问啊 ,我怎样import都不对

在 2013年12月16日 上午11:36,lemonhall [email protected]写道:

恩,所以对于外行来说。。。。你得多写一些文档,说明使用范围嘛,分词那部分我还没深究,什么CRF条件随机场这种东西我是看不懂的,我用的是node.js移植java社区的一个盘古分词组件,起码能正确的抽取去朝鲜金三胖的那位姑父的名字,其实很多关键字肯定是要优先抽取专有名词的。慢慢来,加油。。。我就是一个搞工程的,对这些复杂算法没能力搞,很遗憾。。很感谢你的这个组件。训练集什么的,看来得先自己写个插件慢慢攒了。。。而且这种东西,只能靠人工,且必须是滑动窗口法的。朋友给我介绍了情感分析的一个RNN算法的,考虑了句子的结构,原理上我懂,但是RNN谁懂啊,神经网络向来复杂,而且它那个的训练集也是22w的正向,20w的负能量,还带上了人工挑选的词汇分值表,内存消耗想必也挺可观的。你这个模块我在云端部署的时候,必须是1G内存,否则直接be killed。

工程上来说,不知道你的代码结构是怎样的,完成准确度和可靠度以及单元测试之后,再稍微考虑一下内存消耗以及可选加载这类的事情吧。。都是后话,中文的NLP库真心太少了。。。。让我们这些想做一些功能却不会算法的人觉得十分苦逼啊。尤其是看着NTK那类的库

多谢LZ

— Reply to this email directly or view it on GitHubhttps://github.com/isnowfy/snownlp/issues/7#issuecomment-30631830 .

asivy avatar Dec 16 '13 03:12 asivy

@asivy 比如我在sentiment/init.py 定义的类Sentiment就直接 from snownlp.sentiment import Sentiment 就可以了

isnowfy avatar Dec 16 '13 03:12 isnowfy

@lemonhall 确实要想效果好的话,需要feature,数据集,model都要考虑好才行,所以现在代码还只能算雏形,慢慢改进吧,感谢提了这么多意见啊! 话说分词的话现在用的训练集是公开的人民日报1981年1月的那份,所以估计很多人名都没有,分出来确实比较困难,分词这个还需要增加更多的训练集才能达到更好的效果呢。

isnowfy avatar Dec 16 '13 03:12 isnowfy

[image: 内嵌图片 1] 我是用eclipse的pydev来开发python的 当我新建了一个snownlp工程后,在demo.py文件中怎么都引用不到_init_.py中的类SnowNLP

在 2013年12月16日 上午11:45,isnowfy [email protected]写道:

@lemonhall https://github.com/lemonhall确实要想效果好的话,需要feature,数据集,model都要考虑好才行,所以现在代码还只能算雏形,慢慢改进吧,感谢提了这么多意见啊!

话说分词的话现在用的训练集是公开的人民日报1981年1月的那份,所以估计很多人名都没有,分出来确实比较困难,分词这个还需要增加更多的训练集才能达到更好的效果呢。

— Reply to this email directly or view it on GitHubhttps://github.com/isnowfy/snownlp/issues/7#issuecomment-30632078 .

asivy avatar Dec 16 '13 03:12 asivy

@asivy 你可以把这个项目里的snownlp文件夹单独拿出来,然后放到和demo.py同一级,而不是这整个项目文件夹

isnowfy avatar Dec 16 '13 04:12 isnowfy

原来如此 搞定了 把snopnlp作为一个包而不是一个单独的工程

多谢了

在 2013年12月16日 下午12:11,isnowfy [email protected]写道:

@asivy https://github.com/asivy你可以把这个项目里的snownlp文件夹单独拿出来,然后放到和demo.py同一级,而不是这整个项目文件夹

— Reply to this email directly or view it on GitHubhttps://github.com/isnowfy/snownlp/issues/7#issuecomment-30632779 .

asivy avatar Dec 16 '13 04:12 asivy

还有一个问题想请教下,我主要在看python与自然语言处理这本书来学习NLP,但进展的有点已是,希望大牛可以推荐下其它的资料结合来学习。

在 2013年12月16日 下午12:47,Yazhou Wang [email protected]写道:

原来如此 搞定了 把snopnlp作为一个包而不是一个单独的工程

多谢了

在 2013年12月16日 下午12:11,isnowfy [email protected]写道:

@asivy https://github.com/asivy你可以把这个项目里的snownlp文件夹单独拿出来,然后放到和demo.py同一级,而不是这整个项目文件夹

— Reply to this email directly or view it on GitHubhttps://github.com/isnowfy/snownlp/issues/7#issuecomment-30632779 .

asivy avatar Dec 16 '13 07:12 asivy

@asivy 可以看看这门课,讲的还挺多的 https://www.coursera.org/course/nlp

isnowfy avatar Dec 16 '13 08:12 isnowfy

额,python有一个著名的分词库叫结巴分词,还有c++的实现的 楼上再github上一搜就有

petitchamp avatar Dec 16 '13 09:12 petitchamp

你好,正在学习您的代码,关于自己训练情感分析的文件,按照你的文档里说的来做:

from snownlp.sentiment import Sentiment
sentiment = Sentiment()
sentiment.train('neg.txt','pos.txt')
sentiment.save('sentiment.marshal')

在_init_.py那里train()传入的参数是list?我也传入过list值 然后也会常常出现以下错误:

EOF read where object expected

自己捣鼓了好久也没有搞定,希望能帮助我一下~因为我以前收集了许多语料,想要丰富一下其他方面的情感分析的训练集。

非常感谢!

moshuohua avatar Mar 31 '14 04:03 moshuohua

@moshuohua 传入的是文件的内容而不是文件名,sentiment.train(codecs.open('neg.txt','r','utf-8').readlines(),codecs.open('pos.txt','r','utf-8').readlines())

isnowfy avatar Mar 31 '14 10:03 isnowfy

你好,想请问一下关于情感分析的训练数据,大概需要多少。p.s. 小白 谢谢

FendaZheng avatar Mar 18 '16 09:03 FendaZheng

@FendaZheng 这不好说,肯定越多越好,但是也跟数据集的质量,数据的来源,数据的内容都有关系,只能尝试了

isnowfy avatar Mar 18 '16 10:03 isnowfy

@isnowfy 如果想参与接下来的开发,可不可以先试着帮忙补全一些文档?

thylaco1eo avatar Mar 24 '16 14:03 thylaco1eo

@thylaco1eo 好啊,欢迎欢迎~

isnowfy avatar Mar 25 '16 02:03 isnowfy

你好,关于情感训练我想请教一下,目前情感训练能否做增量训练呢。比如我原来的语料库有10000条,训练完毕后,若想往里面再加入500条,目前就好像只能重新训练这10500条生成新的marshal文件才能让这500条起作用。 所以现在有办法做增量训练,即修改或更新原来的marshal文件而不是重新生成么? 非常感谢!

yukiknight026 avatar Apr 12 '16 07:04 yukiknight026

@yukiknight026 现在还没有办法做增量都是全量训练,增量的话要适当改改代码

isnowfy avatar Apr 12 '16 10:04 isnowfy

@isnowfy 非常感谢哈,那我再研究学习下~

yukiknight026 avatar Apr 13 '16 02:04 yukiknight026

刚刚接触nlp,我想知道如何测试你的tag程序,你的199801.txt应该是训练语库吧,如何进行测试呢?

muzi-8 avatar Jul 01 '16 04:07 muzi-8

@muzi-8 测试可以参考这篇文章

isnowfy avatar Jul 01 '16 04:07 isnowfy

@isnowfy 大神运行 seg.py 时,显示 from ..utils.tnt import TnT ValueError: Attempted relative import in non-package 求解如何解决(路径是没问题的,但是就是提示这个错误)

Trueflash avatar Jul 15 '16 01:07 Trueflash

@Trueflash python对于包里的调用有限制,所以最好不要这样用,用的时候可以按照readme里的说法去用,一定要用的话可以python -m snownlp.seg.seg这样

isnowfy avatar Jul 15 '16 03:07 isnowfy

@isnowfy 谢谢大神 我去看看python对于包里的调用的具体限制 再研究研究

Trueflash avatar Jul 15 '16 03:07 Trueflash

@isnowfy 大神 我使用ipython notebook在sentiment文件夹下 尝试去读取训练好的模型 出现错误 具体代码 import marshal d = marshal.load(open('sentiment.marshal', 'rb')) 报错如下:

ValueError
Traceback (most recent call last) in () ----> 1 d = marshal.load(open('sentiment.marshal', 'rb'))

ValueError: bad marshal data (unknown type code) 求解: 如何处理

Trueflash avatar Aug 16 '16 04:08 Trueflash

@Trueflash 你用我代码里的读取方式,都用了gzip压缩了

isnowfy avatar Aug 16 '16 09:08 isnowfy