Извлечение сущностей Википедии из текста - PullRequest
0 голосов
/ 17 апреля 2019

Есть ли способ, которым мы можем извлечь все объекты из Википедии из текста, используя Wikipedia2Vec? Или есть другой способ сделать то же самое.

Пример:

Text : "Scarlett Johansson is an American actress."  
Entities : [ 'Scarlett Johansson' , 'American' ]

Я хочу сделать это на Python

Спасибо

Ответы [ 2 ]

1 голос
/ 18 апреля 2019

Вы можете использовать spacy :

import spacy
import en_core_web_sm
nlp = en_core_web_sm.load()
doc = doc = nlp('Scarlett Johansson is an American actress.')
print([(X.text, X.label_) for X in doc.ents])

И вы получите:

[('Scarlett Johansson', 'PERSON'), ('American', 'NORP')]

Подробнее в просторной документации .

0 голосов
/ 23 апреля 2019

Вот версия NLTK (может не так хорошо, как SpaCy):

from nltk import Tree
from nltk import ne_chunk, pos_tag, word_tokenize

def get_continuous_chunks(text, chunk_func=ne_chunk):
    chunked = chunk_func(pos_tag(word_tokenize(text)))
    continuous_chunk = []
    current_chunk = []

    for subtree in chunked:
        if type(subtree) == Tree:
            current_chunk.append(" ".join([token for token, pos in subtree.leaves()]))
        elif current_chunk:
            named_entity = " ".join(current_chunk)
            if named_entity not in continuous_chunk:
                continuous_chunk.append(named_entity)
                current_chunk = []
        else:
            continue

    return continuous_chunk


text = 'Scarlett Johansson is an American actress.'
get_continuous_chunks(text)
...