Предсказание пропущенных слов в предложении - модель обработки естественного языка [закрыто]

Моим советом было бы передать параметр запроса.

Скажите Javascript использовать URL-адрес, например

host.local/my-script.php?callFunction=helloWorld

, и скажите php обрабатывать запрос object

1
задан Alyssa Gono 4 March 2019 в 07:27
поделиться

2 ответа

TL; DR

Попробуйте это: https://github.com/huggingface/pytorch-pretrained-BERT

Сначала вы должны настроить его , правильно с

pip install -U pytorch-pretrained-bert

Тогда вы можете использовать «модель языка маски» из алгоритма BERT, например,

import torch
from pytorch_pretrained_bert import BertTokenizer, BertModel, BertForMaskedLM

# OPTIONAL: if you want to have more information on what's happening, activate the logger as follows
import logging
logging.basicConfig(level=logging.INFO)

# Load pre-trained model tokenizer (vocabulary)
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')

text = '[CLS] I want to [MASK] the car because it is cheap . [SEP]'
tokenized_text = tokenizer.tokenize(text)
indexed_tokens = tokenizer.convert_tokens_to_ids(tokenized_text)

# Create the segments tensors.
segments_ids = [0] * len(tokenized_text)

# Convert inputs to PyTorch tensors
tokens_tensor = torch.tensor([indexed_tokens])
segments_tensors = torch.tensor([segments_ids])

# Load pre-trained model (weights)
model = BertForMaskedLM.from_pretrained('bert-base-uncased')
model.eval()

# Predict all tokens
with torch.no_grad():
    predictions = model(tokens_tensor, segments_tensors)

predicted_index = torch.argmax(predictions[0, masked_index]).item()
predicted_token = tokenizer.convert_ids_to_tokens([predicted_index])[0]

print(predicted_token)

[out]:

buy

В Long

Чтобы действительно понять, зачем вам нужны [CLS], [MASK] и тензоры сегментов, пожалуйста, сделайте внимательно прочитайте статью, https://arxiv.org/abs/1810.04805

И если вам лень, вы можете прочитать этот хороший пост от Лилиан Вэн, https: //lilianweng.github.io/lil-log/2019/01/31/generalized-language-models.html

Помимо BERT, существует множество других моделей, которые могут выполнить задачу заполнения бланка. Посмотрите на другие модели в репозитории pytorch-pretrained-BERT, но, что более важно, погрузитесь глубже в задачу «Моделирование языка», то есть в задачу прогнозирования следующего слова с учетом истории.

0
ответ дан alvas 4 March 2019 в 07:27
поделиться

Существует множество моделей, которые вы можете использовать. Но я думаю, что наиболее недавно используемая модель для таких задач обучения последовательности, это двунаправленные RNN (например, двунаправленный LSTM), вы можете получить подсказку из здесь

Но имейте в виду, двунаправленные RNNs очень дорогой в обучении. В зависимости от вашей проблемы, я настоятельно рекомендую использовать предварительно подготовленную модель. Удачи!

0
ответ дан alift 4 March 2019 в 07:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: