fastNLP icon indicating copy to clipboard operation
fastNLP copied to clipboard

CWSPipe在处理全角数字的时候有bug

Open ilredirana opened this issue 3 years ago • 1 comments

Describe the bug 原数据是这样的: 截流 进入 最后 冲刺 ( 附 图片 1 张 ) 天然气 产量 达到 201亿立方米 。 处理后的id转换为汉字是这样的: ['截', '流', '进', '入', '最', '后', '冲', '刺', '(', '附', '图', '片', '<NUM>', '>', '张', ')'] ['天', '然', '气', '产', '量', '达', '到', '<NUM>', '>', '亿', '立', '方', '米', '。'] To Reproduce

dataset_name = 'msra'
loader = CWSLoader(dataset_name=dataset_name)
data_bundle = loader.load()

data_bundle = CWSPipe().process(data_bundle)
print(data_bundle)
vocab = data_bundle.get_vocab('chars')
target_vocab = data_bundle.get_vocab('target')
data_bundle.rename_field('chars', 'words')
for i, data in enumerate(data_bundle.get_dataset('test')):
    print(data.fields.get('raw_words'))
    print(list(vocab.idx2word.get(i) for i in data.fields.get('words')))
    if i > 500:
        break

这是msra数据集的,其他数据集应该也会有这个问题

ilredirana avatar Sep 20 '20 10:09 ilredirana

您可以通过在https://github.com/fastnlp/fastNLP/blob/0d0a6f746ac88a5555cd8c573552dee9552acae1/fastNLP/io/pipe/cws.py#L204 这一行之后加一个continue解决这个bug。我们会在之后的版本中更新这个问题。感谢您细致的观察。

yhcc avatar Sep 20 '20 16:09 yhcc