Вот код, который я использую:
Код: Выделить всё
import spacy
nlp = spacy.load("en_core_web_sm")
def getPayeeName(description):
description = description.replace("-", " ").replace("/", " ").strip()
doc = nlp(description)
for token in doc:
print(f"Token: {token.text}, Entity: {token.ent_type_ if token.ent_type_ else 'None'}")
# Example input
description = "UPI DR 400874707203 BENGALORE 08 JAN 2024 14:38:56 MEDICAL LTD HDFC 50200"
getPayeeName(description)
Токен: DR, Объект: ORG
Токен: 400874707203 , Объект: нет
Токен: БЕНГАЛОР, Объект: нет
Токен: 08, Объект: ДАТА
Токен: ЯНВАРЬ, Объект: ДАТА
Токен: 2024 г., Объект: ДАТА
Токен: 14:38:56, Объект: Нет
Токен: МЕДИЦИНСКИЙ, Объект: ORG
Токен: LTD, Объект: ORGТокен: HDFC, Объект: ORG
Токен: 50200, Объект: ORG
- 50200 идентифицируется как ORG, но это всего лишь число.
- БЕНГАЛОР — это город, но он не признан GPE или местоположение
(возвращает Нет). - UPI и DR — это аббревиатуры/аббревиатуры, но они неправильно
идентифицированы как ORG.
Как я могу устранить эти проблемы? Существуют ли дополнительные конфигурации SpaCy, пользовательские правила или предварительно обученные модели, которые мне следует использовать для улучшения распознавания объектов?
Примечание. Я также пробовал ChatGPT, но эта проблема все равно не решена.
Подробнее здесь: https://stackoverflow.com/questions/792 ... ing-python
Мобильная версия