присвоение пользовательской метки пространству с использованием pandas кадра данных - PullRequest
0 голосов
/ 05 апреля 2020

Я новичок в программировании на основе НЛП. Я пытаюсь сравнить слово с существующим набором данных с использованием НЛП.

У меня есть кадр данных, как показано ниже

dataframe

Теперь, У меня есть вводимый текст, такой как «kri sh Стокгольм», программа должна пометить каждое слово на метке столбца обученного набора данных и отобразить, как показано ниже

kri sh: Имя

Стокгольм: Город

Можно ли это сделать с помощью простора? Цени руководство.

1 Ответ

0 голосов
/ 05 апреля 2020

Вы можете использовать spacy для распознавания имен и местоположений людей, ваша входная строка может не всегда возвращать сущности, например, если строка содержит только 'krish Stockholm' текст, она может идентифицировать ее только как имя, поэтому качество входной текст будет иметь решающее значение.

Вы можете обновить значения в существующем фрейме данных следующим образом:

import spacy
nlp = spacy.load('en_core_web_sm') 
sentence = "Tom works in Apple office at California"
doc = nlp(sentence) 

mylist= []
for ent in doc.ents: 
    print(ent.text, ent.label_)
    mylist.append([ent.text,ent.label_])

print(mylist)

[['Tom', 'PERSON'], ['Apple', 'ORG'], ['California', 'GPE']]

person = ', '.join([i[0] for i in mylist if i[1] == 'PERSON'])
location = ', '.join([i[0] for i in mylist if i[1] == 'GPE'])

df = df.append({'Name':person,'City':location}, ignore_index=True)
print(df)

    Name   Age        City
0    Tom  20.0  California
1   nick  21.0    Brussels
2  krish  19.0   Stockholm
3   jack  18.0       Delhi
4    Tom   NaN  California

Но если вы измените 'A' в Apple на 'a', тогда он будет больше не признает Apple как организацию.

...