ltp
ltp copied to clipboard
实体识别的,如何才能定位到原文中的位置,
因为结果要返显到原文中,我想到用返回实体在分词结果中的位置去做定位,但是原文中有很多的空格,回车等符号,根据分词后的序号也无法进行还原。例如:
原文: 中共中央副主席 刘少奇在栾城县贾村视察
分词结果:[['中共中央', '副', '主席', '刘少奇', '在', '栾城县', '贾村', '视察']]
原文中的空格分词结果没有了,
用python3 简单实现了一个
from typing import List
def get_word_begin_index(origin_text: str, seg_word_list: List[str]):
begin = 0 # char index for origin_text
results = []
for word in seg_word_list:
word_len = len(word)
word_index = origin_text.find(word, begin)
if begin < word_index:
results.append(origin_text[begin:word_index])
results.append(origin_text[word_index:word_index+word_len])
begin = word_index + word_len
if begin < len(origin_text):
results.append(origin_text[begin:])
return results
origin_text = ' 中共中央副主席 刘少奇在栾城县贾村视察\n'
seg = ['中共中央', '副', '主席', '刘少奇', '在', '栾城县', '贾村', '视察']
real_seg = get_word_begin_index(origin_text, seg)
print(real_seg)
# [' ', '中共中央', '副', '主席', ' ', '刘少奇', '在', '栾城县', '贾村', '视察', '\n']