项目作者: fergusq

项目描述 :
Skriptejä kielimallin kouluttamiseksi ja puppugenerointiin
高级语言: Jupyter Notebook
项目地址: git://github.com/fergusq/kielimallit.git
创建时间: 2019-04-06T19:49:16Z
项目社区:https://github.com/fergusq/kielimallit

开源协议:

下载


Ohjeet

Virtuaaliympäristön luominen

  1. python3 -m venv venv
  2. source venv/bin/activate
  3. pip install -r requirements.txt

Sentencepiece-malli

iso-lc on sentencepiece-ohjelmalla luotu Unigram-malli, joka on koulutettu samalla aineistolla kuin alla oleva lstm2-malli.
Mallissa on 24000 sanaketta.
Kaikki tämän repon ohjelmat käyttävät tätä mallia.

Kielimallit

Mallit on koulutettu suomenkielisellä Wikipedialla (696 Mt), suomalaisilla eroottisilla novelleilla (103 Mt) ja Gutenberg-projektin suomenkielisillä teoksilla (464 Mt).
Mallien kouluttamiseen on käytetty Fastai-kirjastoa ja sen oletusasetuksia.

Mallin kouluttaminen ja käyttäminen

Oletetaan, että aineisto on tiedostossa aineisto.txt.
Aineisto voidaan enkoodata seuraavasti:

  1. python3 encode.py aineisto.txt aineisto.npy

Tämän jälkeen kielimalli voidaan kouluttaa seuraavasti:

  1. python3 train-model.py iso-lc.vocab aineisto.npy 5

Komento tallentaa luomansa mallit models/-kansioon.
Luodun mallin avulla voi arpoa tekstiä interaktiivisesti seuraavasti:

  1. python3 sample-model.py iso-lc final_model

Interaktiivisessa tilassa voi antaa kehotteen, ja mallin avulla arvotaan tekstiä joka todennäköisesti tulisi kehotteen perään.
On myös mahdollista muuttaa joitain parametreja komennoilla, erityisesti /n <pituus> muuttaa generoitavan tekstin pituutta
ja /temp <luku> muuttaa todennäköisyysjakauman skaalauslukua (0.7 on yleensä hyvä).

Mallin hienosäätäminen

Tiedostoissa Kalevala.ipynb, Vaalidata.ipynb ja Pyhis.ipynb on esimerkit mallin hienosäätämisestä tietyntyyppisen tekstin generoimiseksi.

Data on tätä varten muutettava CSV-muotoon esimerkiksi seuraavasti:

  1. cat data.txt | sed -E '/^$/d;s/"/""/g;s/^|$/"/g' >data.csv

Sekalaisia skriptejä

  • data/vaalidata.p6: Muuttaa Ylen vaalidatan alkuperäisestä CSV-muodosta yksisarakkeiseen CSV-muotoon, jonka voi syöttää helposti mallille.
  • data/vaalidata-puolueet.p6: Muuttaa vaalidatan muotoon, jossa on mukana tieto puolueesta.
  • sekalaista/filter-by-names.p6: Skripi syö CONLL-U-tiedoston ja valitsee joukon erisnimiä ja filteröi pois lauseet, joissa ei käytetä näitä erisnimiä.
  • sekalaista/find-nearest.p6: Skriptillä voi etsiä tekstitiedostosta annetuilla sanoilla. Hyödyllinen, jos haluaa selvittää, mihin teksteihin generoitu teksti perustuu. Hitaahko.
  • sekalaista/format-election-data.p6: Skriptin avulla voi tehdä Markdown-tiedoston generoidusta vaalikonedatasta.
  • sekalaista/lausepuhelu.p6: Skripti interaktiiviseen tekstingenerointiin: ohjelma kirjoittaa tekstiä, sitten ihminen kirjoittaa vähän tekstiä ja sitten taas ohjelma, jne.