yangheng95 / LCF-ATEPC

codes for paper A Multi-task Learning Model for Chinese-oriented Aspect Polarity Classification and Aspect Term Extraction
MIT License
186 stars 45 forks source link

The problem of the training on new dataset #36

Closed liu-21 closed 2 years ago

liu-21 commented 3 years ago

Hello, I have prepared the data set according to your format, related codes: for example, the path of the data set has been modified, why can't I train it?

Error:Traceback (most recent call last): File "train.py", line 359, in apc_test_acc, apc_test_f1, ate_test_f1 = main(config) File "train.py", line 95, in main train_examples = processor.get_train_examples(args.data_dir) File "/home/xiaojia/lcf/utils/data_utils.py", line 109, in get_train_examples self._read_tsv(os.path.join(data_dir, "car.atepc.train.dat")), "train") File "/home/xiaojia/lcf/utils/data_utils.py", line 90, in _read_tsv return readfile(input_file) File "/home/xiaojia/lcf/utils/data_utils.py", line 65, in readfile polarity.append(int(splits[-1][:-1])) ValueError: invalid literal for int() with base 10: ''

My data format: 位 B-ASP 2 置 I-ASP 2 上 O -1 合 O -1 最 O -1 佳 O -1 中 O -1 心 O -1 位 O -1 置 O -1

yangheng95 commented 3 years ago

情感极性转换失败了,请检查数据集里面情感极性没有缺失的情况

liu-21 commented 3 years ago

做实验验证了不是数据集的问题,请问您跑代码除了对数据集进行格式上的转化,是不是还对数据集做了别的特殊处理?

yangheng95 commented 3 years ago

这个工作将近两年了,细节记不大清了。数据集有没有特殊处理也只涉及后面features的处理,应该是不会影响数据集读取。你可以把出错的部分数据发给我,我帮你看一下

yangheng95 commented 3 years ago

另外,中文数据集的极性是0,2分别代表正负,没有中性的情感(1)。数据在建模前会吧0,2转换成0,1。而-1则是情感标签的填充,不参与极性的学习

liu-21 commented 3 years ago

根据您的描述,我的数据集中只有积极和消极两种极性,没有中性,感觉这样不会影响数据集的读取吧?而且我看您代码里中文只分成两类,似乎没有中性的极性判断。英文数据集是分成三类的。 我的数据集例: 这 O -1 里 O -1 发 B-ASP 2 展 I-ASP 2 肯 O -1 定 O -1 好 O -1 是 O -1 一 O -1 块 O -1 宝 O -1 地 O -1

这 O -1 么 O -1 高 O -1 的 O -1 房 B-ASP 0 价 I-ASP 0 自 O -1 己 O -1 留 O -1 手 O -1 里 O -1 吧 O -1 永 O -1 远 O -1 也 O -1 别 O -1 想 O -1 卖 O -1 出 O -1 去 O -1

实 B-ASP 0 物 I-ASP 0 图 I-ASP 0 无 O -1 语 O -1 这 O -1 全 O -1 是 O -1 售 O -1 楼 O -1 处 O -1 的 O -1 照 O -1 片 O -1 … O -1 根 O -1 本 O -1 不 O -1 是 O -1 小 O -1 区 O -1 里 O -1 的 O -1 照 O -1 片 O -1 好 O -1 吧 O -1 … O -1

yangheng95 commented 3 years ago

这个数据看起来是没有问题的,我有时间帮你看一下。你可以先尝试一下https://github.com/yangheng95/PyABSA ,这里面的代码鲁棒性更好,不过一些地方与原始的实现不同。

yangheng95 commented 3 years ago

需要注意的是PyABSA是自动根据极性的种类初始化模型的,需要极性从0开始并且连续。例如如果你的极性只有两种,那么就使用0,1标注

liu-21 commented 3 years ago

好的,谢谢您!