我正在尝试用生物科学文本进行序列到序列的翻译,里面有很多专有名词,变成了一种结构化的生物学语言。我可以很容易地用它们的实体类型来标记术语(蛋白质、化合物等)。
我想知道是否有一种方法可以用它们的实体类型替换名词(以一种方式让我在翻译后匹配并添加它们),或者以一种可以增强翻译过程的方式对它们进行注释。
例如,将“辛伐他汀诱导的细胞凋亡伴随着小窝蛋白-1表达的特异性诱导”转换为“辛伐他汀增加小窝蛋白-1的rna表达”-辛伐他汀==化合物,小窝蛋白-1 == RNA。
我的期望是,如果我可以预处理输入的句子,我将需要更少的训练数据,但前提是我可以转换“诱导凋亡伴随着特定的表达诱导”,这样我就可以匹配输出中的原始实体(每种类型的一个实体很容易,但如果我有多个化合物或RNA会发生什么?)。
发布于 2019-09-03 22:18:09
你的想法似乎是合理的。他们使用placeholders for emoticons成功地将类似的方法用于嘈杂文本的翻译。
有一个名为scispacy的项目,它包含用于处理生物医学、科学或临床文本的spaCy模型。标准的命名实体识别将找不到任何东西。
它应该能够检测到生物医学实体。您可以通过以下方式安装它:
pip install spacy scispacy https://s3-us-west-2.amazonaws.com/ai2-s2-scispacy/releases/v0.2.3/en_core_sci_sm-0.2.3.tar.gzIn [1]: import scispacy
...: import spacy
...:
...: nlp = spacy.load("en_core_sci_sm")
In [2]: doc = nlp("Simvastatin-induced apoptosis is accompanied by specific induction of caveolin-1 expression.")
In [3]: doc.ents
Out[3]: (Simvastatin-induced apoptosis, induction, caveolin-1, expression)如果你使用其他可用的模型,输出可能会更好,也许它们会得到更好的结果。在此基础上,您可以尝试根据检测到的实体提出一些建议。
https://stackoverflow.com/questions/57666760
复制相似问题