Finite state and Constraint Grammar based analysers, proofing tools and other resources
fkv-kokous 23.9.2019 Paikalla Aili, Thomas, Trond
Me kaikki seuraamme tilanetta, ja joku meistä, erityisesti Aili, kutsuu kokoon.
Analysaattorin yleistilanne on hyvä (ks. alhaalla), mutta . Kattavus ei ole ihan niin hyvä, vain %.
Korpustilanne on parantanut, 380 000 sanaa, mutta parannuksia on.
Korpissa on 2400 sanaa rinnakkaistekstiä:
[http://gtweb.uit.no/f_korp/?mode=parallel#parallel_corpora=fkv&corpus=fkv_ruijan_kaiku_20140418]
Jos nyt kahden viikon aikana lisätään tekstejä ja rinnakkaislinkkeja freecorpusiin, saadaan ne Korpiin lokakuussa.
54475/456285 = 11,9%, siis kattavuus on 88,0 %.
SUMMARY for the gt-norm-dial_Por fst(s): PASSES: 10770 / FAILS: 2 / TOTAL: 10772
SUMMARY for the generating gt-norm-dial_Jok fst(s): PASSES: 1433 / FAILS: 0 / TOTAL: 1433
SUMMARY for the generating gt-norm-dial_Var fst(s): PASSES: 2949 / FAILS: 0 / TOTAL: 2949
Kaksi virhettä, seuraavat:
---------------------------------------------------------
Test 0: Noun - perintö - ei tsekattu (Lexical/Generation)
---------------------------------------------------------
[15/25][FAIL] perintö+N+Pl+Par => Missing results: perinttöi
[15/25][FAIL] perintö+N+Pl+Par => Unexpected results: perinöitä
Test 0 - Passes: 24, Fails: 1, Total: 25
-------------------------------------------------------
Test 1: Noun - perintö - ei tsekattu (Surface/Analysis)
-------------------------------------------------------
[15/25][FAIL] perinttöi => Missing results: perintö+N+Pl+Par
Nämä hankalat neljä verbiä
ei+V+Inf ei+V+Inf +?
liuota+V+Inf liuvota
livota+V+Inf lijota
noveta+V+Inf nojeta
silmästä+V+Inf silmäistä
Ks. myös tiedostot
Toistaa voi komennolla:
echo liuota+V+Inf|dfkv
cd ~/main/tools/CorpusTools
python setup.py install --user --install-scripts=$HOME/bin --record installed_files.txt
Jos saat “Permission denied”, niin olisit pitänyt tehdä asiat toisin aikaisemmin .Trond katsoo. Quick fix:
sudo python setup.py install –user –install-scripts=$HOME/bin –record installed_files.txt
cd ~/freecorpus
convert2xml orig/fkv
Ja sitten tsekata, montako sanaa meillä on:
ccat -l fkv ~/freecorpus/converted/fkv|wc -w
Tänään ainakin 362382.
Tärkeä kysymys. Mikä on kattavuus? Montako sanaa analysaattori tunnistaa?
(vastaus tulossa)
Miten voimme tulkita convert2xml-virheitä: Log (Error at: 162)
Mitä tarkoittaa >ect=“‘’“/> ? Mitä se tekkee?
<xsl:variable name="sub_email" select="*"/>ect="*"/>
Poistimme tämän xsl-tiedostosta, ja sitten convert2xml onnistui.
’”/>ect=”’ olisi pitänyt olla sähköpostiosoite.
sub_email-rivi pitää sisältää
<xsl:variable name="sub_email" select="'jonkun_postiosoite@joku_paikka.no'"/>
Kommentti: kokeilima xmllint ja se toimii kans korpuspuolela, jos feili oon xml:ssä.
Jos saa “Could not convert”:
Asiantuntija on Børre, borre.gaup@uit.no, tai Zulipissa.
Emme löydä feiliä tässä xsl-tiedostossa:
freecorpus/orig/fkv/facta/kainun_institutti
Tuomas:kainun_institutti thomas$ convert2xml .
WARNING:corpustools.convertermanager:Could not convert ./alkukursi_3._osa.docx
Converter: Not valid XML. More info in the log file: /Users/thomas/freecorpus/orig/fkv/facta/kainun_institutti/alkukursi_3._osa.docx.log
Ehotus: Voiko feili olla siinä ette yhessä dokumentissä oon esim 1.,2.,3. ja toisessa a.,b.,c. Jos oon, niin piämäkö net oikaista kaikki dokumenttii missä oon tämäntyyppissii feilii?
Virheilmoitus:
convert2xml orig/fkv/facta/kainun_institutti/alkukursi_3._osa.docx
Converter: Not valid XML. More info in the log file: /Users/trond/freecorpus/orig/fkv/facta/kainun_institutti/alkukursi_3._osa.docx.log
<string>:1:0:ERROR:VALID:DTD_INVALID_CHILD: Element p is not declared in p list of possible children
Toinen asia: ai(ð)an. Analysaattori ei ymmärrä tälläistä muotoa.
xsl-tiedoston lopussa lukee:
<xsl:with-param name="target" select="'str1/str2/str3/'"/>
<xsl:with-param name="replacement" select="'rpl1/rpl2/rpl3/'"/>
Me halutaan se noin (eli: me poistetaan hakasulut):
<xsl:with-param name="target" select="'(ð)/'"/>
<xsl:with-param name="replacement" select="'ð/'"/>
svn up orig/fkv/facta/kainun_institutti/alkukursi_1._osa.docx.xsl
ccat converted/fkv/facta/kainun_institutti/alkukursi_1._osa.docx.xml |grep 'ð'
Vastaus:
converted/fkv/facta/kainun_institutti/alkukursi_1._osa.docx.xml: <p>kah(ð)eksen</p>
convert2xml orig/fkv/facta/kainun_institutti/alkukursi_1._osa.docx
see orig/fkv/facta/kainun_institutti/alkukursi_1._osa.docx.xsl
see orig/fkv/facta/kainun_institutti/alkukursi_4._osa.docx.xsl
<xsl:template match="p[parent::body][not(./em ]( ./span)][text())">
<xsl:variable name="text" select='current()' />
<xsl:variable name="type" select='@type' />
@@ -346,12 +346,12 @@
<xsl:call-template name="globalTextReplace">
<xsl:with-param name="inputString" select="$text"/>
<xsl:with-param name="target" select="'(ð)/(i)/u(a/u)/'"/>
<xsl:with-param name="replacement" select="'ð/i/uu/'"/>
<xsl:with-param name="continue" select="0"/>
</xsl:call-template>
</xsl:element>
</xsl:template>
Aamu(a/u)
kuus(i)
kah(ð)eksen ¶
yh(ð)eksen ¶
kahðeksen ¶
yhðeksen ¶
Saattaisko Trond lisätä pl ess tahi kom generoithuin paradigmhoin?
Tehty. Päivitys tulossa.
Lexical string ('q' = quit): kiv0a>^AO>i5>n
Surface string ('q' = quit): kivvo>0>i>n
k
i
v
0:v
a:o
>
REJECTED: "a:o before Pl i and Pret i" fails in state 27.
ufkv
kivvoin
kivvoin kiva+A+Sg+Superl+Nom
kivvoin kiva+A+Pl+Gen
kiv0e>i2>^V
kivv0>i>i
Error: Strings have an unequal number of symbols.
Mystistä: Molemmilla on 9.
LEXICON jotain
+A+Dial/Por :^Por x_12_si ;
LEXCIOB x_12_si
+Pl+Dial/Por:^E2I%>i2 gen_Vn ; ! vuossiin, ei vuottiin, hirssiin
Kysymys: Onko ongelmallista, että jonossa on Dial/Por-taggi kaksi kertaa?
+A+Dial/Por :^Por +Pl+Dial/Por:^E2I%>i2%>^Vn
Trond: Luulen, että vastaus on ei.
Koska, nimittäin:
Mutta tsekkaa, onko tuplatagi järkevä, vai voiko sitä välttää. Onko siis tarpeellista sanoa asia kahdesti?
Jos kuitenkin on ongelmia, asiaintuntija on Sjur.
Kommentti siitä mitä oon tehty:
Niistä luokituksista ei tullee feilii tällä hetkelä, mutta oon yksi mihin tiän ette tullee feilii jos aktivoima esim var
Trond ei ole vielä henkisesti valmis ajattelemaan var-ongelmia… Mutta on hyvä ajatella sitä jo nyt. Aili: oon jo tehty.
Ailis-MacBook-Pro:lyrics aili$ convert2xml .
Traceback (most recent call last):
File "/Users/aili/bin/convert2xml", line 11, in <module>
load_entry_point('CorpusTools==0.24.2', 'console_scripts', 'convert2xml')()
File "/Users/aili/Library/Python/2.7/lib/python/site-packages/CorpusTools-0.24.2-py2.7.egg/corpustools/convertermanager.py", line 232, in main
manager.convert_in_parallel()
File "/Users/aili/Library/Python/2.7/lib/python/site-packages/CorpusTools-0.24.2-py2.7.egg/corpustools/convertermanager.py", line 93, in convert_in_parallel
list(six.moves.zip([self] * len(self.files), self.files)))
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/multiprocessing/pool.py", line 253, in map
return self.map_async(func, iterable, chunksize).get()
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/multiprocessing/pool.py", line 572, in get
raise self._value
TypeError: str() takes at most 1 argument (2 given)
Ailis-MacBook-Pro:lyrics aili$
Oonko virhe pythonissa?
Prosedyyri:
Katsotaan sitä huomenna klo 11.
LEXC test 3: analyser-gt-norm.hfstol + generated_files/smi-fkv-numerals.lexc - 420/7/427 FAIL
LEXC test 3: analyser-gt-norm.xfst + generated_files/smi-fkv-numerals.lexc - 420/7/427 FAIL
Tiedosto src/morphology/generated-files/00README.txt
sanoo vähän.
../../giella-shared/smi/src/morphology/stems/arabic_roman_digits.lexc
Tiedosto fkv/src/morphology/Makefile.am
on kapellimestari, joka hoitaa kaikki tämän.
Tiedosto fkv/src/morphology/Makefile
pitää olla uudempi kuin fkv/src/morphology/Makefile.am
ls -lt src/morphology/Makefile*
thomasbk:fkv thomas$ ls -lt src/morphology/Makefile*
-rw-r--r-- 1 thomas staff 33304 Sep 23 13:50 src/morphology/Makefile
-rw-r--r-- 1 thomas staff 32330 Aug 19 09:56 src/morphology/Makefile.in
-rw-r--r-- 1 thomas staff 3850 Jul 1 13:32 src/morphology/Makefile.am
Kovempi konsti (vie aikaa):
make distclean
./autogen.sh
./configure
make -j
distclean ottaa pois kaikki rakenetut tiedostot, myös makefileit
Jos Makefile ei ole, niin kirjoita fkv:ssa
./autogen.sh
./configure --with-suosikki-asetuksesi
Sen jälkeen tsekkaat, oletko päivittänyt src/morphology/Makefile
Toinen asia: Make check feilaa hfst:llä: The file lexicon.tmp.hfst did not compile cleanly.
hfst: Näin on. hfst-twolc on tiukempi kuin twolc. Tätä pitää tutkia.
Mistä tämä tulee:
? devtools/test_grammar_checker.sh
Se tulee Divvun-rhmän kielioppikorjausprojektista. Tee niin:
rm devtools/test_grammar_checker.sh
Huomenna klo 11.