基于 NLP 的数据预处理方法使用 CRF 和词嵌入改进疾病名称预测

数据挖掘 机器学习 nlp lstm 词嵌入
2022-02-12 21:40:16

我建立了一个模型(沿 bi lstm 使用 CRF)从医学文本数据中预测新的疾病名称/实体,但问题是疾病名称在 1 个文本文件中仅出现 5.6 次,但平均文本文件包含 500-1000 个单词和这增加了假阴性(FN)。当我在新/实时数据集上测试模型时,它仅预测 60% 的疾病名称(在新数据集上)。

我总共有 16000 个单词(O-tags 代表不相关的单词),只有 220 个单词具有 B-Disease 标签。我的模型精度为 73%,召回率为 61%,f1 分数为 66%。我训练模型的参数

params = {
    'dim': 300,
    'dim_chars': 100,
    'dropout': 0.5,
    'num_oov_buckets': 1,
    'epochs': 75,
    'batch_size': 7,
    'buffer': 15000,
    'char_lstm_size': 25,
    'lstm_size': 100,
    'words': str(Path(DATADIR, 'vocab.words.txt')),
    'chars': str(Path(DATADIR, 'vocab.chars.txt')),
    'tags': str(Path(DATADIR, 'vocab.tags.txt')),
    'glove': str(Path(DATADIR, 'glove.npz'))
}
[file having complete code][1]

案例#2:当我只在包含疾病名称的行上训练模型时,这会导致高误报。

Q1 。我应该从每个文本文件中删除半行,以便减少不相关的数据集。

Q2。或者在不从文本文件中删除半行的情况下增加数据集(增加训练数据集的大小,而不是使用 80 个文件训练 200 个文件的数据)因为我正在使用神经架构进行命名实体识别和神经架构想要更多的训练数据集

我正在使用以下代码/库,tf_ner

我正在使用库“chars_lstm_lstm_crf”中提到的第二个模型

该模型包括:

 GloVe 840B vectors

 Chars embeddings

 Chars bi-LSTM

 Bi-LSTM

 CRF

Lample 等人的相关研究论文 Neural Architectures for Named Entity Recognition。==>>>

研究论文

0个回答
没有发现任何回复~