Deep learning 命名实体识别的数据预处理?

Deep learning 命名实体识别的数据预处理?,deep-learning,nlp,named-entity-recognition,Deep Learning,Nlp,Named Entity Recognition,我正在对简历数据集进行命名实体识别,我们有日期、电话、电子邮件等实体 我正在研究如何预处理这些实体。我现在在每个puncuation后面加一个空格,就像这样 DAVID B-Name John I-Name , O IT O Washington B-Address , I-Address DC I-Address ( B-Phone 107 I-Phone ) I-Phone 155 - I-Phone 4838 I-Phone david B-Email . I-Email John I-

我正在对简历数据集进行命名实体识别,我们有日期、电话、电子邮件等实体

我正在研究如何预处理这些实体。我现在在每个puncuation后面加一个空格,就像这样

DAVID B-Name
John I-Name
, O
IT O

Washington B-Address
, I-Address
DC I-Address
( B-Phone
107 I-Phone
) I-Phone
155
- I-Phone
4838 I-Phone
david B-Email
. I-Email
John I-Email
@ I-Email
gmail I-Email
. I-Email
com I-Email
但我开始质疑推理过程中如何处理这些文本。我假设即使在推理中,我们也必须使用相同的过程来预处理文本,即在每次puncuation之后添加空格,不是吗

但它不会那么可读,对吗


例如,在推理时,我必须提供输入文本,如
test@example。com?
它不可读,不是吗?它只能以这种格式预测实体。

您试图处理的问题称为。为了处理您提出的格式问题,框架通常会以保留原始文本的方式从底层文本中提取标记,例如跟踪每个标记的字符开始和结束

例如,在Python中,返回一个存储所有这些信息的对象:

导入空间
从pprint导入pprint
nlp=spacy.load(“en_core\u web\u sm”)
doc=nlp(“大卫约翰,IT\n华盛顿特区(107)155-4838大卫。John@gmail.com")
pprint([(token.text,token.idx,token.idx+len(token.text)),用于文档中的令牌])
输出:

[('DAVID', 0, 5),
 ('John', 6, 10),
 (',', 10, 11),
 ('IT', 12, 14),
 ('\n', 14, 15),
 ('Washington', 15, 25),
 (',', 25, 26),
 ('DC', 27, 29),
 ('(', 30, 31),
 ('107', 31, 34),
 (')', 34, 35),
 ('155', 36, 39),
 ('-', 39, 40),
 ('4838', 40, 44),
 ('david.John@gmail.com', 45, 65)]

您可以自己做同样的事情(例如,在添加空格时保留一个计数器),也可以使用现有的标记器(如SpaCy、CoreNLP、tensorflow等)

我想用于训练ner模型,但它不支持SpaCy注释模式。它需要IOB注释。如何将其转换为类似于上面在question@user_12看起来您可以加入文本(因此上面加上
text=“.join((doc中的token.text表示token))
)或者flairNLP有一个内置的分类器,您可以使用(
句子=句子('草是绿色的',使用\u tokenizer=True)