Named Entity Recognition (NER, ang. rozpoznawanie nazw własnych) to proces wykrywania nazw własnych w tekście, takich jak nazwiska, nazwy miejsc czy nazwy organizacji. Jest to ważny krok w procesie przetwarzania języka naturalnego, ponieważ pozwala na lepsze zrozumienie sensu tekstu i ułatwienie dalszych analiz.
Do wykrywania nazw własnych w języku Python możemy użyć narzędzi takich jak nltk (Natural Language Toolkit) lub spacy. Obie te biblioteki oferują szerokie możliwości przetwarzania języka naturalnego, w tym wykrywania nazw własnych.
Aby użyć nltk do wykrywania nazw własnych, należy najpierw zainstalować bibliotekę i zaimportować odpowiednie narzędzie:
import nltk
nltk.download('maxent_ne_chunker')
nltk.download('words')
from nltk import word_tokenize, pos_tag, ne_chunk
text = "Barack Obama was born in Hawaii."
tokens = word_tokenize(text)
tags = pos_tag(tokens)
entities = ne_chunk(tags)
print(entities) # wynik: (S (PERSON Barack/NNP) (PERSON Obama/NNP) was/VBD born/VBN in/IN (GPE Hawaii/NNP)./.)
W wyniku tego kodu otrzymamy drzewo składniowe z oznaczonymi nazwami własnymi. Etykiety oznaczają rodzaj nazwy własnej, na przykład PERSON oznacza osobę, GPE oznacza miejsce itp.
Aby użyć spacy do wykrywania nazw własnych, należy najpierw zainstalować bibliotekę i zaimportować odpowiednie narzędzie:
import spacy
nlp = spacy.load('en_core_web_sm')
text = "Barack Obama was born in Hawaii."
doc = nlp(text)
for ent in doc.ents:
print(ent.text, ent.label_) # wynik: Barack Obama PERSON Hawaii GPE
Wykrywanie nazw własnych jest przydatnym narzędziem, które pozwala na lepsze zrozumienie sensu tekstu i ułatwienie dalszych analiz. Może być używane do wyszukiwania nazwisk, nazw miejsc czy organizacji w tekście, a także do tworzenia reprezentacji wektorowych czy wyszukiwania wzorców. Obie biblioteki, nltk i spacy, oferują szerokie możliwości przetwarzania języka naturalnego i są powszechnie używane w branży.
Warto pamiętać, że wykrywanie nazw własnych nie zawsze daje dokładne wyniki i może być trudne do zastosowania dla języków innych niż angielski. Dlatego ważne jest, aby dobrze zrozumieć cel analizy i dobrać odpowiednie narzędzia.