yangheng95 / LCF-ATEPC

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

请教关于data_utils.py的若干问题 #7

Closed zhhhzhang closed 4 years ago

zhhhzhang commented 4 years ago

for m in range(len(token)):
if m == 0: labels.append(label_1) polarities.append(polarity_1) valid.append(1) label_mask.append(1) else: valid.append(0)

  1. 这个地方为什么会有一个if 判断?
  2. valid是在存什么呢?

if len(tokens) >= max_seq_length - 1: tokens = tokens[0:(max_seq_length - 2)] # num = max_seq_length-2 polarities = polarities[0:(max_seq_length - 2)] labels = labels[0:(max_seq_length - 2)] valid = valid[0:(max_seq_length - 2)] label_mask = label_mask[0:(max_seq_length - 2)]

  1. 这个地方为什么是max_seq_length-1 和 -2

while len(input_ids_spc) < max_seq_length: input_ids_spc.append(0) input_mask.append(0) segment_ids.append(0) label_ids.append(0)
valid.append(1) label_mask.append(0)

while len(label_ids) < max_seq_length: label_ids.append(0) label_mask.append(0)

while len(polarities) < max_seq_length: polarities.append(-1) 这三个while为什么分开写呢?

感谢回答! 问题可能有点蠢,但是我确实没看明白,望不吝赐教[抱拳]

yangheng95 commented 4 years ago

if判断token被分词的个数是否大于1个,BERT采用word peice分词,word piece分词可能会把一个单词分成几个部分。valid表示如果一个单词被分成了几个部分,只让第一部分“有效”。

后面的几个问题都关于向量的填充,建议动手调试一下

zhhhzhang commented 4 years ago

好嘞! 谢谢啦 我再自己琢磨一下

---原始邮件--- 发件人: "YangHeng"<notifications@github.com> 发送时间: 2020年2月23日(周日) 中午12:58 收件人: "yangheng95/LCF-ATEPC"<LCF-ATEPC@noreply.github.com>; 抄送: "zhhhzhang"<zhhhzhang@foxmail.com>;"Author"<author@noreply.github.com>; 主题: Re: [yangheng95/LCF-ATEPC] 请教关于data_utils.py的若干问题 (#7)

if判断token被分词的个数是否大于1个,BERT采用word peice分词,word piece分词可能会把一个单词分成几个部分。valid表示如果一个单词被分成了几个部分,只让第一部分“有效”。

后面的几个问题都关于向量的填充,建议动手调试一下

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.