Я использую 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 правильно их обнаруживает?
Я использую Spacy с моделью PL_CORE_NEWS_LG для извлечения именованных объектов из польского текста. Он правильно обнаруживает как организации (ORG), так и имена людей (PER): < /p> [code]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
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 [/code] Почему Presidio не может обнаружить организации (org) и pesel (PL_PESEL), в то время как SPACY правильно их обнаруживает?
Я пробовал запустить код и реализовал различные методы, но постоянно сталкиваюсь с этой ошибкой
ValueError: Невозможно загрузить модель из файла конфигурации: раздел не найден. {'nltk': {'stopwords': 'stopwords'}, 'spacy': {'model':...
Последние версии Spacy имеют лучшую производительность и совместимость для ускорения графического процессора на устройствах Apple, но у меня есть существующий проект, который зависит от Spacy 3.1.4 и некоторых конкретных поведения моделей 3.1.0 (Web...
Я использую Microsoft Presidio для анализа и анонимизации текста, и у меня есть файл конфигурации (all-config.yml) для указания распознавателей, включая некоторые списки запретов с диакритическими символами. Однако я столкнулся с проблемой, когда...