Redian新闻
>
有没有做sentiment analysis的,求思路
avatar
有没有做sentiment analysis的,求思路# Programming - 葵花宝典
s*r
1
下面说必须选择“广州领事馆”, 不知道是在一开始填表的时候就选择“中国广州”
,还是填完表以后拿到条码确认页的时候再选择“中国广州”?
另外, 户口本 和 身份证 都需要么? 如果需要的话, 是不是复印件就可以了?
多谢。
5、 DS-160表条码确认页:必须选择“广州领事馆”,右上角空白处手工填写申请人姓
名的中文及标准电码,家庭住址、单位名称及单位地址的中文信息。DS-160表条码确认
页上的条形码必须清晰完整,该表不能折叠,复印件或传真件均不接受。
avatar
w*h
2
在公司做sentiment analysis,
现在的做法是这样
首先在大概几万句sentences中训练出word2vec model
然后将大概4000个labels的sentences转成vector, 80%作为training, 20%作为testing
, 用neural net作为classifier
类别三类,positive, neutral, negative
之前是公司的一个印度人在负责,达到63% accuracy
我接手之后调参 + 做一些ensemble提高到68% leader似乎不满足,觉得可以到70%甚
至80%
现在我想到思路有几个
1. 做semi-supervise, 没有label的数据有的是
2. unsupervise learning, 比如用autoencoder来initialize neural net
3. GBM or Random forest? 觉得这几个不可能超过我现在这个了
来这里希望得到一些启发,谢啦!
avatar
B*a
3
两个都选广州。
貌似两个都不需要
avatar
m*r
4
你们用什么语言做的?
avatar
g*t
5
不如你从测试的角度想?
一个accuracy 指标就是一个思路。最好不要跟别人定的指标。跟着别人定的指标打命
中率就是奴隶。
打命中率的终极办法是自己定一个指标,和自己的程序互相绕。最后达到骗住一个是一
个的目的。
简单说,你找个合理的,可以量化的,说的过去的办法,
把你失败的例子定义成no conclusion就完了。并不是所有的句子都可以分成三类的。
激励不足则无法分辨系统内部模态。这些类似算卦的话要学会...
avatar
w*h
6
python

【在 m******r 的大作中提到】
: 你们用什么语言做的?
avatar
w*h
7
嗯,我leader基本上就在干这样的事,发现其实有些句子确实不好分,让business那边
的人重新tag,竟然不少比例和上次的不一样。
不过本着学习的态度,还是来板上求些意见, 毕竟不是专业学NLP的。
ps. “激励不足则无法分辨系统内部模态”,haha, 这句话好,咋翻译成英文呢?

【在 g****t 的大作中提到】
: 不如你从测试的角度想?
: 一个accuracy 指标就是一个思路。最好不要跟别人定的指标。跟着别人定的指标打命
: 中率就是奴隶。
: 打命中率的终极办法是自己定一个指标,和自己的程序互相绕。最后达到骗住一个是一
: 个的目的。
: 简单说,你找个合理的,可以量化的,说的过去的办法,
: 把你失败的例子定义成no conclusion就完了。并不是所有的句子都可以分成三类的。
: 激励不足则无法分辨系统内部模态。这些类似算卦的话要学会...

avatar
g*t
8
Excitation persistence? 真有类似的东西的。60年代可能就有了。你的领导无非是要
个好看的东西卖给他的领导。其实就是矩阵近似不可逆
公司不是你家的,我觉得不要追求数学物理模型以及算法方面的突破。你要真想做,分
析的路数例如把数据分成子类,一类类看看为什么有的类效果好,有的不好。等于误差
分析。
cs的路数就是
做一个多种DL互相换的软件系统。那么多DL框架,对你的特定问题,做个
方便的工具替换着来回试,够你做半年了。然后取个好名字,叫做互补多向DL


: 嗯,我leader基本上就在干这样的事,发现其实有些句子确实不好分,让
business那边

: 的人重新tag,竟然不少比例和上次的不一样。

: 不过本着学习的态度,还是来板上求些意见, 毕竟不是专业学NLP的。

: ps. “激励不足则无法分辨系统内部模态”,haha, 这句话
好,咋翻译成英文
呢?



【在 w*****h 的大作中提到】
: 嗯,我leader基本上就在干这样的事,发现其实有些句子确实不好分,让business那边
: 的人重新tag,竟然不少比例和上次的不一样。
: 不过本着学习的态度,还是来板上求些意见, 毕竟不是专业学NLP的。
: ps. “激励不足则无法分辨系统内部模态”,haha, 这句话好,咋翻译成英文呢?

avatar
g*t
9
BTW,你领导对你还是不错的,知道往别的部门找找原因。是不是老中?
到时候你搞不定,领导就说数据统计不稳定,不是well defined的。搞定就是你立功了。
如果你领导信得过。不如你做些数据自动tag的tool什么的,
去tag组做个小领导完事。这样你领导完就可以晋级大领导。


: 嗯,我leader基本上就在干这样的事,发现其实有些句子确实不好分,让
business那边

: 的人重新tag,竟然不少比例和上次的不一样。

: 不过本着学习的态度,还是来板上求些意见, 毕竟不是专业学NLP的。

: ps. “激励不足则无法分辨系统内部模态”,haha, 这句话
好,咋翻译成英文
呢?



【在 w*****h 的大作中提到】
: 嗯,我leader基本上就在干这样的事,发现其实有些句子确实不好分,让business那边
: 的人重新tag,竟然不少比例和上次的不一样。
: 不过本着学习的态度,还是来板上求些意见, 毕竟不是专业学NLP的。
: ps. “激励不足则无法分辨系统内部模态”,haha, 这句话好,咋翻译成英文呢?

avatar
w*h
10
leader确实中国人,
不过还是得拿成绩说话阿,靠leader照顾不是长久之计

了。

【在 g****t 的大作中提到】
: BTW,你领导对你还是不错的,知道往别的部门找找原因。是不是老中?
: 到时候你搞不定,领导就说数据统计不稳定,不是well defined的。搞定就是你立功了。
: 如果你领导信得过。不如你做些数据自动tag的tool什么的,
: 去tag组做个小领导完事。这样你领导完就可以晋级大领导。
:
:
: 嗯,我leader基本上就在干这样的事,发现其实有些句子确实不好分,让
: business那边
:
: 的人重新tag,竟然不少比例和上次的不一样。
:
: 不过本着学习的态度,还是来板上求些意见, 毕竟不是专业学NLP的。
:
: ps. “激励不足则无法分辨系统内部模态”,haha, 这句话

avatar
w*g
11
你想到的思路都没有问题。但是都太incremental不够糙快猛。
我自己觉得,你的bottleneck是在word2vec和sentence to vector
这个大框架上。不知道你具体sentence to vector是怎么做的,
但是如果是变成固定维数的vector,那就比较肯定是一个可以
有所突破的bottleneck。你可以试下基于CNN或者RNN的model。
你在这里找找看有没有能用的代码:
https://nlp.stanford.edu/sentiment/
不过在这之前,我建议试下xgboost。固定维度的数据分类,标准
做法就是xgboost。注意树的深度不要太高,2,3,4试一下就差不多了。
我觉得这个能帮你从68%提高到70%。
semisupervised learning实战非常risky,轻易不要浪费时间在上面。
上CNN/RNN,我估计做好了能到75%以上。80%很可能超过了数据
本身的难度。
还有,你让business重新tag,如果差异可以量化,这个是一个非常
好的指标。如果让人做都有多少多少差异,就别指望机器能做的更好了。

testing

【在 w*****h 的大作中提到】
: 在公司做sentiment analysis,
: 现在的做法是这样
: 首先在大概几万句sentences中训练出word2vec model
: 然后将大概4000个labels的sentences转成vector, 80%作为training, 20%作为testing
: , 用neural net作为classifier
: 类别三类,positive, neutral, negative
: 之前是公司的一个印度人在负责,达到63% accuracy
: 我接手之后调参 + 做一些ensemble提高到68% leader似乎不满足,觉得可以到70%甚
: 至80%
: 现在我想到思路有几个

avatar
w*h
12
信息量很大,我回去试试再来板上汇报
多谢wdong!

【在 w***g 的大作中提到】
: 你想到的思路都没有问题。但是都太incremental不够糙快猛。
: 我自己觉得,你的bottleneck是在word2vec和sentence to vector
: 这个大框架上。不知道你具体sentence to vector是怎么做的,
: 但是如果是变成固定维数的vector,那就比较肯定是一个可以
: 有所突破的bottleneck。你可以试下基于CNN或者RNN的model。
: 你在这里找找看有没有能用的代码:
: https://nlp.stanford.edu/sentiment/
: 不过在这之前,我建议试下xgboost。固定维度的数据分类,标准
: 做法就是xgboost。注意树的深度不要太高,2,3,4试一下就差不多了。
: 我觉得这个能帮你从68%提高到70%。

avatar
m*o
13
先用bidirectional lstm + glove 测一下baseline吧,之后可以考虑做dependency
parsing + tree lstm。
avatar
T*x
14
请教xgboost和neural network比有没有任何优势?

:你想到的思路都没有问题。但是都太incremental不够糙快猛。
:我自己觉得,你的bottleneck是在word2vec和sentence to vector
avatar
w*g
15
这两个用来解决不同的问题.
固定唯独的特征数据(比如病人的年龄性别身高体重等各种参数), 用xgboost效果比较
好.
图象声音等从传感器获得的数据, 用neural network比较好.
xgboost能做的, 非要用neural network调到同样的效果, 也应该能调到, 就是麻烦点.

【在 T*******x 的大作中提到】
: 请教xgboost和neural network比有没有任何优势?
:
: :你想到的思路都没有问题。但是都太incremental不够糙快猛。
: :我自己觉得,你的bottleneck是在word2vec和sentence to vector

avatar
m*o
16
tensorflow应该不久也会推出gradient boosting,到时候就不用几个库之间折腾来折
腾去了。

点.

【在 w***g 的大作中提到】
: 这两个用来解决不同的问题.
: 固定唯独的特征数据(比如病人的年龄性别身高体重等各种参数), 用xgboost效果比较
: 好.
: 图象声音等从传感器获得的数据, 用neural network比较好.
: xgboost能做的, 非要用neural network调到同样的效果, 也应该能调到, 就是麻烦点.

avatar
s*k
17
训练量看起来可能有点少,除非很专业领域,直接试一下glove或者Word2vec的库看看
行不行

testing

【在 w*****h 的大作中提到】
: 在公司做sentiment analysis,
: 现在的做法是这样
: 首先在大概几万句sentences中训练出word2vec model
: 然后将大概4000个labels的sentences转成vector, 80%作为training, 20%作为testing
: , 用neural net作为classifier
: 类别三类,positive, neutral, negative
: 之前是公司的一个印度人在负责,达到63% accuracy
: 我接手之后调参 + 做一些ensemble提高到68% leader似乎不满足,觉得可以到70%甚
: 至80%
: 现在我想到思路有几个

avatar
s*k
18
另外你的NN是什么样的?就是几层的全连接的话,试一下上LSTM,就用最简单的
seq2seq model

testing

【在 w*****h 的大作中提到】
: 在公司做sentiment analysis,
: 现在的做法是这样
: 首先在大概几万句sentences中训练出word2vec model
: 然后将大概4000个labels的sentences转成vector, 80%作为training, 20%作为testing
: , 用neural net作为classifier
: 类别三类,positive, neutral, negative
: 之前是公司的一个印度人在负责,达到63% accuracy
: 我接手之后调参 + 做一些ensemble提高到68% leader似乎不满足,觉得可以到70%甚
: 至80%
: 现在我想到思路有几个

avatar
s*k
19
其实xgboost好像效率不如软家那个lightGBM

【在 m****o 的大作中提到】
: tensorflow应该不久也会推出gradient boosting,到时候就不用几个库之间折腾来折
: 腾去了。
:
: 点.

avatar
m*e
20
"首先在大概几万句sentences中训练出word2vec model"
"然后将大概4000个labels的sentences转成vector"
1) My guess is the size of the data not large enough. What's the training
error? If training error < test error and training error is closer to human
error, it is a high variance problem. You can add regularization. But it
probably means the amount of data is not big enough. You can try transfer
learning by using GloVe for example.
2) I would also check the quality of the embeddings. Use a few examples and
see how many of the top 10 words make sense to you. On one project, I got
good results with embeddings trained from 1,000,000 good-quality sentences
written by professionals. Good meaning at least 9 out of 10 of the top
similar words make sense to me. On another project, 80,000 sentences of not
-so-good quality got back garbage results. If your training data sucks, use
pretained embeddings like GloVe.
3) How do you turn sentences into vectors? I would either do doc2vec or
concatenate word embeddings. For the latter case, try 1d CNN or RNN.
Let us know how it turns out.
avatar
T*x
21
谢谢。看来xgboost还是有意义的,我以为都被neural network碾压了。

点.

【在 w***g 的大作中提到】
: 这两个用来解决不同的问题.
: 固定唯独的特征数据(比如病人的年龄性别身高体重等各种参数), 用xgboost效果比较
: 好.
: 图象声音等从传感器获得的数据, 用neural network比较好.
: xgboost能做的, 非要用neural network调到同样的效果, 也应该能调到, 就是麻烦点.

avatar
s*k
22
对于tabular类的data,GBM各种类型都不错,但是这个例子还是raw data 的text,估
计还是NN比较好一点吧,第一个感觉是训练数据不够,比起测试数据用来训练word2vec
太少了。如果不是专业领域直接上Glove之类看看。第二就是NN模型用个LSTM比如
seq2seq看看

【在 T*******x 的大作中提到】
: 谢谢。看来xgboost还是有意义的,我以为都被neural network碾压了。
:
: 点.

avatar
w*g
23
我去学习学习

【在 s********k 的大作中提到】
: 其实xgboost好像效率不如软家那个lightGBM
avatar
w*h
24
正在测试CNN,epoch还没训练完,不过目前的accuracy已经达到70%,
这还是在没有做ensemble的情况下, 太赞了。
再请教wdong和楼上几位,有必要再上RNN吗?

【在 w***g 的大作中提到】
: 你想到的思路都没有问题。但是都太incremental不够糙快猛。
: 我自己觉得,你的bottleneck是在word2vec和sentence to vector
: 这个大框架上。不知道你具体sentence to vector是怎么做的,
: 但是如果是变成固定维数的vector,那就比较肯定是一个可以
: 有所突破的bottleneck。你可以试下基于CNN或者RNN的model。
: 你在这里找找看有没有能用的代码:
: https://nlp.stanford.edu/sentiment/
: 不过在这之前,我建议试下xgboost。固定维度的数据分类,标准
: 做法就是xgboost。注意树的深度不要太高,2,3,4试一下就差不多了。
: 我觉得这个能帮你从68%提高到70%。

avatar
T*x
25
你这个accuracy是用CNN还是用xgboost得到的?

【在 w*****h 的大作中提到】
: 正在测试CNN,epoch还没训练完,不过目前的accuracy已经达到70%,
: 这还是在没有做ensemble的情况下, 太赞了。
: 再请教wdong和楼上几位,有必要再上RNN吗?

avatar
w*h
26
CNN
可能有点误解,我是说CNN训练的轮数还没达到设定的epoch值, 它还在训练中,但目
前的model已经有70% accuracy了
xgboost我也试过了,和NN差不多

【在 T*******x 的大作中提到】
: 你这个accuracy是用CNN还是用xgboost得到的?
avatar
w*g
27
如果是几十上百个词的短文本,我估计rnn不会有提高(NLP专家请指正)。你有时间还
不如试试data augmentation, 比如随机增减几个词,同义词替换啥的。不过你现在最
重要的是establish问题复杂度,就是上次说的对比不同人的区别,这样知道什么时候
停止优化。不然老板拍脑袋定指标,终有一天会把你逼死。

:正在测试CNN,epoch还没训练完,不过目前的accuracy已经达到70%,
avatar
T*x
28
这个高。

【在 w***g 的大作中提到】
: 如果是几十上百个词的短文本,我估计rnn不会有提高(NLP专家请指正)。你有时间还
: 不如试试data augmentation, 比如随机增减几个词,同义词替换啥的。不过你现在最
: 重要的是establish问题复杂度,就是上次说的对比不同人的区别,这样知道什么时候
: 停止优化。不然老板拍脑袋定指标,终有一天会把你逼死。
:
: :正在测试CNN,epoch还没训练完,不过目前的accuracy已经达到70%,
: :

avatar
b*k
29
又学习到了 膜拜大牛

【在 w***g 的大作中提到】
: 如果是几十上百个词的短文本,我估计rnn不会有提高(NLP专家请指正)。你有时间还
: 不如试试data augmentation, 比如随机增减几个词,同义词替换啥的。不过你现在最
: 重要的是establish问题复杂度,就是上次说的对比不同人的区别,这样知道什么时候
: 停止优化。不然老板拍脑袋定指标,终有一天会把你逼死。
:
: :正在测试CNN,epoch还没训练完,不过目前的accuracy已经达到70%,
: :

avatar
w*h
30
在公司做sentiment analysis,
现在的做法是这样
首先在大概几万句sentences中训练出word2vec model
然后将大概4000个labels的sentences转成vector, 80%作为training, 20%作为testing
, 用neural net作为classifier
类别三类,positive, neutral, negative
之前是公司的一个印度人在负责,达到63% accuracy
我接手之后调参 + 做一些ensemble提高到68% leader似乎不满足,觉得可以到70%甚
至80%
现在我想到思路有几个
1. 做semi-supervise, 没有label的数据有的是
2. unsupervise learning, 比如用autoencoder来initialize neural net
3. GBM or Random forest? 觉得这几个不可能超过我现在这个了
来这里希望得到一些启发,谢啦!
avatar
m*r
31
你们用什么语言做的?
avatar
g*t
32
不如你从测试的角度想?
一个accuracy 指标就是一个思路。最好不要跟别人定的指标。跟着别人定的指标打命
中率就是奴隶。
打命中率的终极办法是自己定一个指标,和自己的程序互相绕。最后达到骗住一个是一
个的目的。
简单说,你找个合理的,可以量化的,说的过去的办法,
把你失败的例子定义成no conclusion就完了。并不是所有的句子都可以分成三类的。
激励不足则无法分辨系统内部模态。这些类似算卦的话要学会...
avatar
w*h
33
python

【在 m******r 的大作中提到】
: 你们用什么语言做的?
avatar
w*h
34
嗯,我leader基本上就在干这样的事,发现其实有些句子确实不好分,让business那边
的人重新tag,竟然不少比例和上次的不一样。
不过本着学习的态度,还是来板上求些意见, 毕竟不是专业学NLP的。
ps. “激励不足则无法分辨系统内部模态”,haha, 这句话好,咋翻译成英文呢?

【在 g****t 的大作中提到】
: 不如你从测试的角度想?
: 一个accuracy 指标就是一个思路。最好不要跟别人定的指标。跟着别人定的指标打命
: 中率就是奴隶。
: 打命中率的终极办法是自己定一个指标,和自己的程序互相绕。最后达到骗住一个是一
: 个的目的。
: 简单说,你找个合理的,可以量化的,说的过去的办法,
: 把你失败的例子定义成no conclusion就完了。并不是所有的句子都可以分成三类的。
: 激励不足则无法分辨系统内部模态。这些类似算卦的话要学会...

avatar
g*t
35
Excitation persistence? 真有类似的东西的。60年代可能就有了。你的领导无非是要
个好看的东西卖给他的领导。其实就是矩阵近似不可逆
公司不是你家的,我觉得不要追求数学物理模型以及算法方面的突破。你要真想做,分
析的路数例如把数据分成子类,一类类看看为什么有的类效果好,有的不好。等于误差
分析。
cs的路数就是
做一个多种DL互相换的软件系统。那么多DL框架,对你的特定问题,做个
方便的工具替换着来回试,够你做半年了。然后取个好名字,叫做互补多向DL


: 嗯,我leader基本上就在干这样的事,发现其实有些句子确实不好分,让
business那边

: 的人重新tag,竟然不少比例和上次的不一样。

: 不过本着学习的态度,还是来板上求些意见, 毕竟不是专业学NLP的。

: ps. “激励不足则无法分辨系统内部模态”,haha, 这句话
好,咋翻译成英文
呢?



【在 w*****h 的大作中提到】
: 嗯,我leader基本上就在干这样的事,发现其实有些句子确实不好分,让business那边
: 的人重新tag,竟然不少比例和上次的不一样。
: 不过本着学习的态度,还是来板上求些意见, 毕竟不是专业学NLP的。
: ps. “激励不足则无法分辨系统内部模态”,haha, 这句话好,咋翻译成英文呢?

avatar
g*t
36
BTW,你领导对你还是不错的,知道往别的部门找找原因。是不是老中?
到时候你搞不定,领导就说数据统计不稳定,不是well defined的。搞定就是你立功了。
如果你领导信得过。不如你做些数据自动tag的tool什么的,
去tag组做个小领导完事。这样你领导完就可以晋级大领导。


: 嗯,我leader基本上就在干这样的事,发现其实有些句子确实不好分,让
business那边

: 的人重新tag,竟然不少比例和上次的不一样。

: 不过本着学习的态度,还是来板上求些意见, 毕竟不是专业学NLP的。

: ps. “激励不足则无法分辨系统内部模态”,haha, 这句话
好,咋翻译成英文
呢?



【在 w*****h 的大作中提到】
: 嗯,我leader基本上就在干这样的事,发现其实有些句子确实不好分,让business那边
: 的人重新tag,竟然不少比例和上次的不一样。
: 不过本着学习的态度,还是来板上求些意见, 毕竟不是专业学NLP的。
: ps. “激励不足则无法分辨系统内部模态”,haha, 这句话好,咋翻译成英文呢?

avatar
w*h
37
leader确实中国人,
不过还是得拿成绩说话阿,靠leader照顾不是长久之计

了。

【在 g****t 的大作中提到】
: BTW,你领导对你还是不错的,知道往别的部门找找原因。是不是老中?
: 到时候你搞不定,领导就说数据统计不稳定,不是well defined的。搞定就是你立功了。
: 如果你领导信得过。不如你做些数据自动tag的tool什么的,
: 去tag组做个小领导完事。这样你领导完就可以晋级大领导。
:
:
: 嗯,我leader基本上就在干这样的事,发现其实有些句子确实不好分,让
: business那边
:
: 的人重新tag,竟然不少比例和上次的不一样。
:
: 不过本着学习的态度,还是来板上求些意见, 毕竟不是专业学NLP的。
:
: ps. “激励不足则无法分辨系统内部模态”,haha, 这句话

avatar
w*g
38
你想到的思路都没有问题。但是都太incremental不够糙快猛。
我自己觉得,你的bottleneck是在word2vec和sentence to vector
这个大框架上。不知道你具体sentence to vector是怎么做的,
但是如果是变成固定维数的vector,那就比较肯定是一个可以
有所突破的bottleneck。你可以试下基于CNN或者RNN的model。
你在这里找找看有没有能用的代码:
https://nlp.stanford.edu/sentiment/
不过在这之前,我建议试下xgboost。固定维度的数据分类,标准
做法就是xgboost。注意树的深度不要太高,2,3,4试一下就差不多了。
我觉得这个能帮你从68%提高到70%。
semisupervised learning实战非常risky,轻易不要浪费时间在上面。
上CNN/RNN,我估计做好了能到75%以上。80%很可能超过了数据
本身的难度。
还有,你让business重新tag,如果差异可以量化,这个是一个非常
好的指标。如果让人做都有多少多少差异,就别指望机器能做的更好了。

testing

【在 w*****h 的大作中提到】
: 在公司做sentiment analysis,
: 现在的做法是这样
: 首先在大概几万句sentences中训练出word2vec model
: 然后将大概4000个labels的sentences转成vector, 80%作为training, 20%作为testing
: , 用neural net作为classifier
: 类别三类,positive, neutral, negative
: 之前是公司的一个印度人在负责,达到63% accuracy
: 我接手之后调参 + 做一些ensemble提高到68% leader似乎不满足,觉得可以到70%甚
: 至80%
: 现在我想到思路有几个

avatar
w*h
39
信息量很大,我回去试试再来板上汇报
多谢wdong!

【在 w***g 的大作中提到】
: 你想到的思路都没有问题。但是都太incremental不够糙快猛。
: 我自己觉得,你的bottleneck是在word2vec和sentence to vector
: 这个大框架上。不知道你具体sentence to vector是怎么做的,
: 但是如果是变成固定维数的vector,那就比较肯定是一个可以
: 有所突破的bottleneck。你可以试下基于CNN或者RNN的model。
: 你在这里找找看有没有能用的代码:
: https://nlp.stanford.edu/sentiment/
: 不过在这之前,我建议试下xgboost。固定维度的数据分类,标准
: 做法就是xgboost。注意树的深度不要太高,2,3,4试一下就差不多了。
: 我觉得这个能帮你从68%提高到70%。

avatar
m*o
40
先用bidirectional lstm + glove 测一下baseline吧,之后可以考虑做dependency
parsing + tree lstm。
avatar
T*x
41
请教xgboost和neural network比有没有任何优势?

:你想到的思路都没有问题。但是都太incremental不够糙快猛。
:我自己觉得,你的bottleneck是在word2vec和sentence to vector
avatar
w*g
42
这两个用来解决不同的问题.
固定唯独的特征数据(比如病人的年龄性别身高体重等各种参数), 用xgboost效果比较
好.
图象声音等从传感器获得的数据, 用neural network比较好.
xgboost能做的, 非要用neural network调到同样的效果, 也应该能调到, 就是麻烦点.

【在 T*******x 的大作中提到】
: 请教xgboost和neural network比有没有任何优势?
:
: :你想到的思路都没有问题。但是都太incremental不够糙快猛。
: :我自己觉得,你的bottleneck是在word2vec和sentence to vector

avatar
m*o
43
tensorflow应该不久也会推出gradient boosting,到时候就不用几个库之间折腾来折
腾去了。

点.

【在 w***g 的大作中提到】
: 这两个用来解决不同的问题.
: 固定唯独的特征数据(比如病人的年龄性别身高体重等各种参数), 用xgboost效果比较
: 好.
: 图象声音等从传感器获得的数据, 用neural network比较好.
: xgboost能做的, 非要用neural network调到同样的效果, 也应该能调到, 就是麻烦点.

avatar
s*k
44
训练量看起来可能有点少,除非很专业领域,直接试一下glove或者Word2vec的库看看
行不行

testing

【在 w*****h 的大作中提到】
: 在公司做sentiment analysis,
: 现在的做法是这样
: 首先在大概几万句sentences中训练出word2vec model
: 然后将大概4000个labels的sentences转成vector, 80%作为training, 20%作为testing
: , 用neural net作为classifier
: 类别三类,positive, neutral, negative
: 之前是公司的一个印度人在负责,达到63% accuracy
: 我接手之后调参 + 做一些ensemble提高到68% leader似乎不满足,觉得可以到70%甚
: 至80%
: 现在我想到思路有几个

avatar
s*k
45
另外你的NN是什么样的?就是几层的全连接的话,试一下上LSTM,就用最简单的
seq2seq model

testing

【在 w*****h 的大作中提到】
: 在公司做sentiment analysis,
: 现在的做法是这样
: 首先在大概几万句sentences中训练出word2vec model
: 然后将大概4000个labels的sentences转成vector, 80%作为training, 20%作为testing
: , 用neural net作为classifier
: 类别三类,positive, neutral, negative
: 之前是公司的一个印度人在负责,达到63% accuracy
: 我接手之后调参 + 做一些ensemble提高到68% leader似乎不满足,觉得可以到70%甚
: 至80%
: 现在我想到思路有几个

avatar
s*k
46
其实xgboost好像效率不如软家那个lightGBM

【在 m****o 的大作中提到】
: tensorflow应该不久也会推出gradient boosting,到时候就不用几个库之间折腾来折
: 腾去了。
:
: 点.

avatar
m*e
47
"首先在大概几万句sentences中训练出word2vec model"
"然后将大概4000个labels的sentences转成vector"
1) My guess is the size of the data not large enough. What's the training
error? If training error < test error and training error is closer to human
error, it is a high variance problem. You can add regularization. But it
probably means the amount of data is not big enough. You can try transfer
learning by using GloVe for example.
2) I would also check the quality of the embeddings. Use a few examples and
see how many of the top 10 words make sense to you. On one project, I got
good results with embeddings trained from 1,000,000 good-quality sentences
written by professionals. Good meaning at least 9 out of 10 of the top
similar words make sense to me. On another project, 80,000 sentences of not
-so-good quality got back garbage results. If your training data sucks, use
pretained embeddings like GloVe.
3) How do you turn sentences into vectors? I would either do doc2vec or
concatenate word embeddings. For the latter case, try 1d CNN or RNN.
Let us know how it turns out.
avatar
T*x
48
谢谢。看来xgboost还是有意义的,我以为都被neural network碾压了。

点.

【在 w***g 的大作中提到】
: 这两个用来解决不同的问题.
: 固定唯独的特征数据(比如病人的年龄性别身高体重等各种参数), 用xgboost效果比较
: 好.
: 图象声音等从传感器获得的数据, 用neural network比较好.
: xgboost能做的, 非要用neural network调到同样的效果, 也应该能调到, 就是麻烦点.

avatar
s*k
49
对于tabular类的data,GBM各种类型都不错,但是这个例子还是raw data 的text,估
计还是NN比较好一点吧,第一个感觉是训练数据不够,比起测试数据用来训练word2vec
太少了。如果不是专业领域直接上Glove之类看看。第二就是NN模型用个LSTM比如
seq2seq看看

【在 T*******x 的大作中提到】
: 谢谢。看来xgboost还是有意义的,我以为都被neural network碾压了。
:
: 点.

avatar
w*g
50
我去学习学习

【在 s********k 的大作中提到】
: 其实xgboost好像效率不如软家那个lightGBM
avatar
w*h
51
正在测试CNN,epoch还没训练完,不过目前的accuracy已经达到70%,
这还是在没有做ensemble的情况下, 太赞了。
再请教wdong和楼上几位,有必要再上RNN吗?

【在 w***g 的大作中提到】
: 你想到的思路都没有问题。但是都太incremental不够糙快猛。
: 我自己觉得,你的bottleneck是在word2vec和sentence to vector
: 这个大框架上。不知道你具体sentence to vector是怎么做的,
: 但是如果是变成固定维数的vector,那就比较肯定是一个可以
: 有所突破的bottleneck。你可以试下基于CNN或者RNN的model。
: 你在这里找找看有没有能用的代码:
: https://nlp.stanford.edu/sentiment/
: 不过在这之前,我建议试下xgboost。固定维度的数据分类,标准
: 做法就是xgboost。注意树的深度不要太高,2,3,4试一下就差不多了。
: 我觉得这个能帮你从68%提高到70%。

avatar
T*x
52
你这个accuracy是用CNN还是用xgboost得到的?

【在 w*****h 的大作中提到】
: 正在测试CNN,epoch还没训练完,不过目前的accuracy已经达到70%,
: 这还是在没有做ensemble的情况下, 太赞了。
: 再请教wdong和楼上几位,有必要再上RNN吗?

avatar
w*h
53
CNN
可能有点误解,我是说CNN训练的轮数还没达到设定的epoch值, 它还在训练中,但目
前的model已经有70% accuracy了
xgboost我也试过了,和NN差不多

【在 T*******x 的大作中提到】
: 你这个accuracy是用CNN还是用xgboost得到的?
avatar
w*g
54
如果是几十上百个词的短文本,我估计rnn不会有提高(NLP专家请指正)。你有时间还
不如试试data augmentation, 比如随机增减几个词,同义词替换啥的。不过你现在最
重要的是establish问题复杂度,就是上次说的对比不同人的区别,这样知道什么时候
停止优化。不然老板拍脑袋定指标,终有一天会把你逼死。

:正在测试CNN,epoch还没训练完,不过目前的accuracy已经达到70%,
avatar
T*x
55
这个高。

【在 w***g 的大作中提到】
: 如果是几十上百个词的短文本,我估计rnn不会有提高(NLP专家请指正)。你有时间还
: 不如试试data augmentation, 比如随机增减几个词,同义词替换啥的。不过你现在最
: 重要的是establish问题复杂度,就是上次说的对比不同人的区别,这样知道什么时候
: 停止优化。不然老板拍脑袋定指标,终有一天会把你逼死。
:
: :正在测试CNN,epoch还没训练完,不过目前的accuracy已经达到70%,
: :

avatar
b*k
56
又学习到了 膜拜大牛

【在 w***g 的大作中提到】
: 如果是几十上百个词的短文本,我估计rnn不会有提高(NLP专家请指正)。你有时间还
: 不如试试data augmentation, 比如随机增减几个词,同义词替换啥的。不过你现在最
: 重要的是establish问题复杂度,就是上次说的对比不同人的区别,这样知道什么时候
: 停止优化。不然老板拍脑袋定指标,终有一天会把你逼死。
:
: :正在测试CNN,epoch还没训练完,不过目前的accuracy已经达到70%,
: :

avatar
m*e
57
多谢反馈。
想核实一下细节,是用的一维convolution吗?宽度多少?
avatar
t*o
58
前面说过:不要用神经网络!不要用神经网络!不要用神经网络!
CNN RNN啥的都是需要很多的feature,数据量要大,比如图片那种,全是像素,
feature都差不多,你扔到CNN里一层层BP就能把重要feature弄出来然后performance高。
但是你这个sentiment analysis,有两大原因,导致不能用NN这种暴力方法:
1. 数据量:太小,才几万句;NN在NLP领域唯一比较成功的就是各种embedding,不管
是BOW还是skip-gram,数据量都很大,你算算那些东西展开后,都是2的多少次方;这
个任务里,句子实在太少;
2. NLP里面,feature权重差别大:NLP不像图片,所有feature几乎可以看作都一样,
比如像素;就sentiment来讲,sentiment或者说opinion可能存在于词层面(pos)、短
语层面(chunking)、句子层面(syntax)、甚至段落(semantics);什么NN加
word2vec只能照顾到词层面,顶多一部分短语层面,句子和段落的信息全丢了。
按照前面括号里提到的相关方法提取出feature,然后加入上下文,比如前三后三啥的
,然后放到xgb这种模型里才好。
当然了,按照上面说的把该有的feature提取出来,就算还扔进原来的NN,也还是会比
以前好一些。
NLP很多任务不适合NN的原因在于,你需要基于对linguistics的知识自己去提取
feature,从morphology、syntax、semantics、pragmatics从下到上一层层去找
feature,才能把自然语言的意思找出来。
人类语言表达语义更多是靠语言单位之间的关系,而不是光靠词本身;翻译成machine
learning的黑话,就是不可以有feature independence的假设;这些你需要自己提取的
feature,可以看作是latent variable,全是hidden的,你自己不提出来,model是无
法自己弄出来的。类似于NN这种只能解决feature从多到精的问题,却无法解决feature
从无到有的问题。

testing

【在 w*****h 的大作中提到】
: 在公司做sentiment analysis,
: 现在的做法是这样
: 首先在大概几万句sentences中训练出word2vec model
: 然后将大概4000个labels的sentences转成vector, 80%作为training, 20%作为testing
: , 用neural net作为classifier
: 类别三类,positive, neutral, negative
: 之前是公司的一个印度人在负责,达到63% accuracy
: 我接手之后调参 + 做一些ensemble提高到68% leader似乎不满足,觉得可以到70%甚
: 至80%
: 现在我想到思路有几个

avatar
g*9
59
这个为什么不买现成的工具?你自己做的能比人家专业公司做的好?

testing

【在 w*****h 的大作中提到】
: 在公司做sentiment analysis,
: 现在的做法是这样
: 首先在大概几万句sentences中训练出word2vec model
: 然后将大概4000个labels的sentences转成vector, 80%作为training, 20%作为testing
: , 用neural net作为classifier
: 类别三类,positive, neutral, negative
: 之前是公司的一个印度人在负责,达到63% accuracy
: 我接手之后调参 + 做一些ensemble提高到68% leader似乎不满足,觉得可以到70%甚
: 至80%
: 现在我想到思路有几个

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。