如何在numpy数组中找到相同的实体?

时间:2019-02-21 09:09:56

标签: python numpy

我将多语言库用于命名实体识别,并将结果存储在numpy数组中。现在,这两个numpy数组的元素不匹配其他元素。

REL_LIST = np.array(['ریس جمهور', 'تولد', 'استاد', 'کارمند', 'ریس'])
SENT_LIST = np.array(['رئیس جمهور محمد اشرف غنی تاکید ورزیده که حکومت افغانستان نباید در گفتگو های صلح در حاشیه رانده شود.'])
FINAL_NER_LIST =[]

for sent in range(len(SENT_LIST)):
    list = SENT_LIST[sent].entities
    FINAL_NER_LIST.append(list)
    for rel in range(len(REL_LIST)):
        if REL_LIST[rel] in SENT_LIST:
            FINAL_NER_LIST.extend(REL_LIST[rel])

我的目的是检查REL_LIST中是否有SENT_LIST的实体,并且多色NER的输出如下:

[[I-PER(['محمد', 'اشرف']) I-LOC(['افغانستان'])]
[I-LOC(['میونیخ', 'جرمنی']) I-PER(['عبدالعزیز'])]
[I-PER(['اشرف']) I-LOC(['کابل'])]
[I-PER(['اشرف', 'غنی']) I-LOC(['افغانستان'])]]

1 个答案:

答案 0 :(得分:0)

也许我还是不明白问题所在,但也许这样的事情会起作用?

NEW_LIST = []
for sentence in SENT_LIST:
    NEW_LIST.append([sentence.entities])
    for rel in REL_LIST:
        if rel in sentence:
            NEW_LIST[-1].append(rel)

NEW_LIST将是一个与SENT_LIST相同长度的列表。每个条目将首先包含实体,然后包含关系。