2016-10-01 3 views
2

Ich habe ein grundlegendes Wort Vorhersage Produkt mit R als Teil eines Online-Kurs Projektarbeit gebaut. Ich wollte es erweitern, um das nächste Wort aus den tamilischen Phasen zu sagen. Ich hatte eine Stichprobe von tamilischen Korpora von der HC Corpora Website benutzt. Ich habe es in R gelesen und ein tm() - Korpus erstellt.lesen Tamil Corpus in R

Die tatsächlichen Tamil-Wörter sind Zeilennamen dieses Datenrahmens und werden auf dem Bildschirm richtig angezeigt. Wenn ich jedoch versuche, sie als Spalte für ihre jeweilige Zählung hinzuzufügen, zeigt der resultierende Datenrahmen die Tamil-Wörter nicht korrekt in der Spalte unigramsList $ word1 an. Es zeigt es als Unicode-Zeichen des zugrunde liegenden tamilischen Wortes an.

unigramsList$word1 <- rownames(unigramsList) ## Encoding issues arise from here!!! 
head(unigramsList, 3) 

slam..col_sums.unigrams. 
அவன்       2 
இடங்களில்      2 
இன்னும்       1 
                      word1 
அவன்            <U+0B85><U+0BB5><U+0BA9><U+0BCD> 
இடங்களில் <U+0B87><U+0B9F><U+0B99><U+0BCD><U+0B95><U+0BB3><U+0BBF><U+0BB2><U+0BCD> 
இன்னும்     <U+0B87><U+0BA9><U+0BCD><U+0BA9><U+0BC1><U+0BAE><U+0BCD> 
> 

habe ich versucht, mit diesen Unicode-Zeichen fortzusetzen und gebaut n-Gramm für 2, 3 und 4-Gramm und verwenden es für meine Vorhersage. Alle nachfolgenden Operationen in dieser Spalte werden jedoch nur als unbearbeiteter Unicode angezeigt. Ich möchte sie in ihren tamilischen Charakteren sehen und vorhersagen können.

Meine Sitzungsinformationen ist als unten:

> sessionInfo() 
R version 3.2.5 (2016-04-14) 
Platform: i386-w64-mingw32/i386 (32-bit) 
Running under: Windows 7 (build 7601) Service Pack 1 

locale: 
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C       
[5] LC_TIME=English_United States.1252  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] RWeka_0.4-29 tm_0.6-2  NLP_0.1-9  stringi_1.0-1 stringr_1.0.0 

loaded via a namespace (and not attached): 
[1] magrittr_1.5  parallel_3.2.5 tools_3.2.5  slam_0.1-37  
[5] grid_3.2.5  rJava_0.9-8  RWekajars_3.9.0-1 
+1

Willkommen bei SO. Bitte lesen Sie [wie man minimal reproduzierbare Beispiele in R zur Verfügung stellt] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example#answer-5963610). Dann bearbeiten und verbessern Sie es entsprechend. Ein guter Post liefert normalerweise nur minimale Eingabedaten, die gewünschten Ausgabedaten und Code-Versuche - alles Copy-Paste-Run-in einer neuen/sauberen R-Sitzung. 'blogcon <- Datei (" Ta_Blogs.txt ") ist nicht reproduzierbar. – lukeA

+0

Ich hatte es jetzt behoben und enthalten einen reproduzierbaren Code mit Tamil-Textdaten. Danke für Ihren Vorschlag, reproduzierbare Beispiele zu liefern –

Antwort

1

ich über eine Lösung hacken verwaltet und daher dachte es für alle Interessierten in diesem Thema veröffentlichen.

a) Anstatt die N-Gramme als CSV-Dateien unter Windows zu speichern, habe ich sie im R-Binärformat gespeichert (mit den Funktionen save() und load()). Ich hatte die generierten N-Grams mit read.csv() gespeichert, wobei die fileEncoding-Option auf UTF-8 gesetzt war, aber auch nach der Bereitstellung auf Shiny half es nicht.

b) Implementiert und getestet mit Shiny-Apps, die auf einer Linux-Plattform ausgeführt werden und daher Tamil-Zeichen in Unicode korrekt anzeigen können. Das lokale Testen unter Windows war nicht effektiv, da die Zeichen als rohe Unicodes angezeigt wurden, z. usw.

Dank an Marek Gagolewski, Autor von Stringi, für Vorschläge zu shiningio, die mir geholfen haben, auf der Linux-Plattform von shiny zu installieren und zu testen. mit dem untenstehenden Link

Sie können das Produkt überprüfen, ob Sie daran interessiert sind: https://periasamyr.shinyapps.io/predictwordml/

Grüße

Peri