Почему Presidio с Spacy NLP Engine не распознает организации и Pesel, пока Spacy делает?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему Presidio с Spacy NLP Engine не распознает организации и Pesel, пока Spacy делает?

Сообщение Anonymous »

Я использую Spacy с моделью PL_CORE_NEWS_LG для извлечения именованных объектов из польского текста. Он правильно обнаруживает как организации (ORG), так и имена людей (PER): < /p>

Код: Выделить всё

import spacy

nlp = spacy.load("pl_core_news_lg")
text = "Jan Kowalski pracuje w IBM i współpracuje z Microsoft oraz Google."

doc = nlp(text)
entities = [(ent.text, ent.label_) for ent in doc.ents]

print(entities)
< /code>
output: < /p>
[('Jan Kowalski', 'persName'), ('IBM', 'orgName'), ('Microsoft', 'orgName'), ('Google', 'orgName')]
< /code>
Однако, когда я использую Presidio с моделью PL_CORE_NEWS_LG и файла конфигурации, распознатели не определяют организации (ORG) или Pesel, даже если они появляются в списке поддерживаемых объектов. < /p>
from presidio_analyzer import AnalyzerEngine, RecognizerRegistry
from presidio_analyzer.nlp_engine import NlpEngineProvider

provider = NlpEngineProvider(conf_file="path_to_my_file/nlp_config.yaml")
nlp_engine = provider.create_engine()

print(f"Supported recognizers (from NLP engine): {nlp_engine.get_supported_entities()}")

supported_languages = list(nlp_engine.get_supported_languages())
registry = RecognizerRegistry(supported_languages=["pl"])
registry.load_predefined_recognizers(["pl"])

print(f"Supported recognizers (from registry): {registry.get_supported_entities(['pl'])}")

analyzer = AnalyzerEngine(
registry=registry, supported_languages=supported_languages, nlp_engine=nlp_engine
)

results = analyzer.analyze(text, "pl")

for entity in results:
print(f"Found entity: {entity.entity_type} with score {entity.score}")
< /code>
output: < /p>
Supported recognizers (from NLP engine): ['ID', 'NRP', 'DATE_TIME', 'PERSON', 'LOCATION']
Supported recognizers (from registry): ['IN_VOTER', 'URL', 'IBAN_CODE', 'CREDIT_CARD', 'DATE_TIME', 'NRP', 'PHONE_NUMBER', 'MEDICAL_LICENSE', 'PERSON', 'IP_ADDRESS', 'ORGANIZATION', 'CRYPTO', 'LOCATION', 'PL_PESEL', 'EMAIL_ADDRESS']
< /code>
Несмотря на то, что «Организация» и «PL_PESEL» перечислены (орг должен быть перечислен из NLP Engine) в качестве поддерживаемых распознавателей, Presidio не обнаруживает их правильно в тексте.nlp_engine_name: spacy
models:
- lang_code: pl
model_name: pl_core_news_lg

ner_model_configuration:
model_to_presidio_entity_mapping:
persName: PERSON
orgName: ORGANIZATION
#    orgName: ORG
placeName: LOCATION
geogName: LOCATION
LOC: LOCATION
GPE: LOCATION
FAC: LOCATION
DATE: DATE_TIME
TIME: DATE_TIME
NORP: NRP
ID: ID
Почему Presidio не может обнаружить организации (org) и pesel (PL_PESEL), в то время как SPACY правильно их обнаруживает?

Подробнее здесь: https://stackoverflow.com/questions/795 ... d-pesel-wh
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»