Treinado a partir do corpus chinês pelas ferramentas wordrep do MITIE (leva de 2 a 3 dias para treinamento)
Para treinamento, crie a ferramenta MITIE Wordrep. Observe que o corpus chinês deve ser tokenizado primeiro, antes de ser inserido na ferramenta de treinamento. O corpus de domínio próximo que melhor corresponde ao caso do usuário funciona melhor.
Um modelo treinado do Wikipedia Dump chinês e do Baidu Baike pode ser baixado do 中文Blog.
Deve adicionar tantos exemplos quanto possível.
python setup.py install
Modifique a configuração.
Atualmente para os chineses temos dois pipelines:
Use MITIE+Jieba (sample_configs/config_jieba_mitie.yml):
language : " zh "
pipeline :
- name : " nlp_mitie "
model : " data/total_word_feature_extractor_zh.dat "
- name : " tokenizer_jieba "
- name : " ner_mitie "
- name : " ner_synonyms "
- name : " intent_entity_featurizer_regex "
- name : " intent_classifier_mitie "
RECOMENDADO: Use MITIE+Jieba+sklearn (sample_configs/config_jieba_mitie_sklearn.yml):
language : " zh "
pipeline :
- name : " nlp_mitie "
model : " data/total_word_feature_extractor_zh.dat "
- name : " tokenizer_jieba "
- name : " ner_mitie "
- name : " ner_synonyms "
- name : " intent_entity_featurizer_regex "
- name : " intent_featurizer_mitie "
- name : " intent_classifier_sklearn "
(Opcional) Use o dicionário definido pelo usuário Jieba ou alterne o dicionário padrão do Jieba:
Você pode colocar o caminho do arquivo ou do diretório como o valor "user_dicts". (sample_configs/config_jieba_mitie_sklearn_plus_dict_path.yml)
language : " zh "
pipeline :
- name : " nlp_mitie "
model : " data/total_word_feature_extractor_zh.dat "
- name : " tokenizer_jieba "
default_dict : " ./default_dict.big "
user_dicts : " ./jieba_userdict "
# user_dicts: "./jieba_userdict/jieba_userdict.txt"
- name : " ner_mitie "
- name : " ner_synonyms "
- name : " intent_entity_featurizer_regex "
- name : " intent_featurizer_mitie "
- name : " intent_classifier_sklearn "
Treine o modelo executando:
Se você especificar o nome do seu projeto no arquivo de configuração, isso salvará seu modelo em /models/nome_do_seu_projeto.
Caso contrário, seu modelo será salvo em /models/default
python -m rasa_nlu.train -c sample_configs/config_jieba_mitie_sklearn.yml --data data/examples/rasa/demo-rasa_zh.json --path models
python -m rasa_nlu.server -c sample_configs/config_jieba_mitie_sklearn.yml --path models
$ curl -XPOST localhost:5000/parse -d '{"q":"我发烧了该吃什么药?", "project": "rasa_nlu_test", "model": "model_20170921-170911"}' | python -mjson.tool
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 652 0 552 100 100 157 28 0:00:03 0:00:03 --:--:-- 157
{
"entities": [
{
"end": 3,
"entity": "disease",
"extractor": "ner_mitie",
"start": 1,
"value": "发烧"
}
],
"intent": {
"confidence": 0.5397186422631861,
"name": "medical"
},
"intent_ranking": [
{
"confidence": 0.5397186422631861,
"name": "medical"
},
{
"confidence": 0.16206323981749196,
"name": "restaurant_search"
},
{
"confidence": 0.1212448457737397,
"name": "affirm"
},
{
"confidence": 0.10333600028547868,
"name": "goodbye"
},
{
"confidence": 0.07363727186010374,
"name": "greet"
}
],
"text": "我发烧了该吃什么药?"
}