Что не так с моей моделью камамбера трансформаторов NER? - PullRequest
0 голосов
/ 27 мая 2020

Я пытался использовать трансформаторы для NER на французском языке, используя модель «камамбер». Я наткнулся на этот код из: https://huggingface.co/transformers/usage.html. К сожалению, результаты моего короткого предложения неудовлетворительны, и я не могу понять, что-то не так с моим кодом.

import torch
from transformers import AutoModelForTokenClassification, AutoTokenizer


model = AutoModelForTokenClassification.from_pretrained("camembert-base")
tokenizer = AutoTokenizer.from_pretrained("camembert-base")

label_list = [
    "O",       # Outside of a named entity
    "B-MISC",  # Beginning of a miscellaneous entity right after another miscellaneous entity
    "I-MISC",  # Miscellaneous entity
    "B-PER",   # Beginning of a person's name right after another person's name
    "I-PER",   # Person's name
    "B-ORG",   # Beginning of an organisation right after another organisation
    "I-ORG",   # Organisation
    "B-LOC",   # Beginning of a location right after another location
    "I-LOC"    # Location
]

sequence = "Paris, capitale de la France, est une grande ville européenne et un centre mondial de l'art, de la mode, de la gastronomie et de la culture."

# Bit of a hack to get the tokens with the special tokens
tokens = tokenizer.tokenize(tokenizer.decode(tokenizer.encode(sequence)))
inputs = tokenizer.encode(sequence, return_tensors="pt")

outputs = model(inputs)[0]
predictions = torch.argmax(outputs, dim=2)

print([(token, label_list[prediction]) for token, prediction in zip(tokens, predictions[0].tolist())])

Результат прогноза:

[('<s>', 'O'), ('▁Paris', 'O'), (',', 'O'), ('▁capitale', 'B-MISC'), ('▁de', 'O'), ('▁la', 'B-MISC'), ('▁France', 'O'), (',', 'O'), ('▁est', 'B-MISC'), ('▁une', 'O'), ('▁grande', 'O'), ('▁ville', 'O'), ('▁européenne', 'O'), ('▁et', 'O'), ('▁un', 'O'), ('▁centre', 'O'), ('▁mondial', 'O'), ('▁de', 'O'), ('▁l', 'O'), ("'", 'O'), ('art', 'O'), (',', 'O'), ('▁de', 'O'), ('▁la', 'B-MISC'), ('▁mode', 'B-MISC'), (',', 'O'), ('▁de', 'O'), ('▁la', 'B-MISC'), ('▁gastronomie', 'O'), ('▁et', 'O'), ('▁de',
'O'), ('▁la', 'O'), ('▁culture', 'O'), ('.', 'O'), ('</s>', 'O')]`

1 Ответ

0 голосов
/ 28 мая 2020

Вы должны искать https://huggingface.co/models?search=conll03 для французского.

Вы можете создать проблему, просто чтобы проверить, существует ли модель, настроенная для задачи NER.

В конце вашего последнего классификатора должно быть

Linear(in_features=768, out_features=9, bias=True).

С моделем "camembert-base" вы получаете только 2 функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...