重新标记电子邮件地址
Retokenize email address
有没有办法重新标记电子邮件地址,使它们再次成为电子邮件地址?在我现在使用的代码中(见下文),如果我输入 mobydick123@gmail.com
我得到输出 mobydick123 @ gmail.com
.
from nltk.tokenize.treebank import TreebankWordDetokenizer
from nltk.tokenize import word_tokenize
from itertools import groupby
import spacy
input_sent = 'Herman Melvilles email is mobydick123@gmail.com'
tokens = word_tokenize(input_sent)
print(tokens)
myList = list(filter((']').__ne__, tokens))
myList = list(filter(('[').__ne__, myList))
res = [i[0] for i in groupby(myList)]
my_list = list(map(lambda item: item.replace("W_NLP_PERSON", "[W_NLP_PERSON]").replace('W_NLP_DATE', '[W_NLP_DATE]').replace('W_NLP_IMEI_HARDWARE_ID', '[W_NLP_IMEI_HARDWARE_ID]').replace('W_NLP_IP_ADDRESS', '[W_NLP_IP_ADDRESS]'), res))
my_list = TreebankWordDetokenizer().detokenize(my_list)
print(my_list)
假设列表的最后 3 个元素始终是名称 + @ + 域,即:
>>> my_list.split()[-3:]
['mobydick123', '@', 'gmail.com']
您可以根据 space 拆分您的列表并加入两个联接。
elements = my_list.split()
>>> print(' '.join(elements[:-3]),''.join(elements[-3:]))
Herman Melvilles email is mobydick123@gmail.com
第一部分以分隔符 space 连接,第二部分不使用分隔符连接,将电子邮件放在一起。基于最后 3 个元素将是电子邮件的假设,这是一个可靠的假设,因为通常是这种情况,这应该有效。
有没有办法重新标记电子邮件地址,使它们再次成为电子邮件地址?在我现在使用的代码中(见下文),如果我输入 mobydick123@gmail.com
我得到输出 mobydick123 @ gmail.com
.
from nltk.tokenize.treebank import TreebankWordDetokenizer
from nltk.tokenize import word_tokenize
from itertools import groupby
import spacy
input_sent = 'Herman Melvilles email is mobydick123@gmail.com'
tokens = word_tokenize(input_sent)
print(tokens)
myList = list(filter((']').__ne__, tokens))
myList = list(filter(('[').__ne__, myList))
res = [i[0] for i in groupby(myList)]
my_list = list(map(lambda item: item.replace("W_NLP_PERSON", "[W_NLP_PERSON]").replace('W_NLP_DATE', '[W_NLP_DATE]').replace('W_NLP_IMEI_HARDWARE_ID', '[W_NLP_IMEI_HARDWARE_ID]').replace('W_NLP_IP_ADDRESS', '[W_NLP_IP_ADDRESS]'), res))
my_list = TreebankWordDetokenizer().detokenize(my_list)
print(my_list)
假设列表的最后 3 个元素始终是名称 + @ + 域,即:
>>> my_list.split()[-3:]
['mobydick123', '@', 'gmail.com']
您可以根据 space 拆分您的列表并加入两个联接。
elements = my_list.split()
>>> print(' '.join(elements[:-3]),''.join(elements[-3:]))
Herman Melvilles email is mobydick123@gmail.com
第一部分以分隔符 space 连接,第二部分不使用分隔符连接,将电子邮件放在一起。基于最后 3 个元素将是电子邮件的假设,这是一个可靠的假设,因为通常是这种情况,这应该有效。