Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

你好,我试验了你们的这个多任务学习模型,有一些问题想请教。 #41

Open
zhujinqiu opened this issue Dec 14, 2021 · 3 comments

Comments

@zhujinqiu
Copy link

模型在预测时候,对于方面Aspect term的抽取效果很好,但是对于语句话如果有多个aspect,且他们情感极性相反时,他的预测情感极性就会出错。我实验了很多次。比如我输入的测试句子明显带有正负向的情感倾向,如'the staff was so nice to us ,But the service was bad ',他返回的一直都是同一个情感倾向: 'aspect': ['staff', 'service'] ;'sentiment': ['Negative', 'Negative']。除了我自己训练的模型,你们预训练好的模型我也试过,针对这种情况很难预测出一句话包含多个aspect且有相反情感极性的句子。请问这个问题如何解决。
AA

@yangheng95
Copy link
Owner

yangheng95 commented Dec 16, 2021

简而言之,多任务模型采用bert-base预测模型,也就是所有的aspect输出的极性都是这个sentence的全局极性。我把bert_spc在预测极性阶段启用了,但是spc在训练时并没有启用,所以存在一定矛盾。你可以升级到1.6.11版本测试效果。如果追求分类效果,请关注其他APC专用模型,例如https://paperswithcode.com/sota/aspect-based-sentiment-analysis-on-semeval 上的模型,或者PyABSA提供的其他模型

@zhujinqiu
Copy link
Author

@yangheng95 好的,还有我发现了一个bug,我跑debug的时候发现的,你们这里 aspect_tokens = example.text_b[:]输出的结果不是aspect token,比如第一个句子"the staff is horrible to us",你们这行代码输出的是[“the" ",staff” ]并不是['staff'],这就导致后面的text_left, _, text_right(206行)输出的结果都不对,还有204行代码也有问题aspect = ' '.join(example.text_b)这个输出不是aspect字符串。
我后来对你们的代码进行了调整:
aspect_tokens = [example.text_b[-1]]#这个对单个aspect词可以,但如果aspect包含多个token不知道行不行
aspect = example.text_b[-1] #同上,我这边取-1可能不太好(对于多个token的aspect可能有问题)
你们可以debug试试,你们这边代码输出的有问题,不知道我这样改的对不对,但按我这样,后面的text_left, _, text_right都能识别出。。。

:https://github.com/yangheng95/PyABSA/blob/bd98756c9353cacebd7f67b749ac928c547cce05/pyabsa/core/atepc/dataset_utils/data_utils_for_training.py#L189

@yangheng95
Copy link
Owner

yangheng95 commented Dec 16, 2021 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants