Как найти те же сущности в массиве numpy? - PullRequest
0 голосов
/ 21 февраля 2019

Я использовал библиотеку полиглотов для распознавания именованных объектов и сохранил результат в массиве.Теперь элементы этих двух массивов не совпадают с другими.

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 голосов
/ 21 февраля 2019

Может быть, я до сих пор не понимаю проблему, но, может быть, что-то подобное будет работать?

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.Каждая запись сначала содержит сущности, а затем отношения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...