2016-04-17 8 views
1

Von TreeTagger's website Ich habe ein Verzeichnis erstellt und die angegebenen Dateien heruntergeladen. Dann treetaggerwrapper, also von den documentation habe ich versucht, zu testen und versuchen, wie einen Text zu markieren, wie folgt:Sie müssen * Unicode * string als Text zum Tag verwenden, während Sie mit TreeTagger taggen?

In [40]: 

import treetaggerwrapper 

tagger = treetaggerwrapper.TreeTagger(TAGLANG='en') 

tags = tagger.TagText("This is a very short text to tag.") 

print tags 

Dann habe ich die folgenden Warnungen:

WARNING:TreeTagger:Abbreviation file not found: english-abbreviations 
WARNING:TreeTagger:Processing without abbreviations file. 
ERROR:TreeTagger:Must use *unicode* string as text to tag, not <type 'str'>. 

--------------------------------------------------------------------------- 
TreeTaggerError       Traceback (most recent call last) 
<ipython-input-40-37b912126580> in <module>() 
     1 import treetaggerwrapper 
     2 tagger = treetaggerwrapper.TreeTagger(TAGLANG='en') 
----> 3 tags = tagger.TagText("This is a very short text to tag.") 
     4 print tags 

/usr/local/lib/python2.7/site-packages/treetaggerwrapper.pyc in TagText(self, text, numlines, tagonly, prepronly, tagblanks, notagurl, notagemail, notagip, notagdns, encoding, errors) 
    1236   return self.tag_text(text, numlines=numlines, tagonly=tagonly, 
    1237     prepronly=prepronly, tagblanks=tagblanks, notagurl=notagurl, 
-> 1238     notagemail=notagemail, notagip=notagip, notagdns=notagdns) 
    1239 
    1240  # -------------------------------------------------------------------------- 

/usr/local/lib/python2.7/site-packages/treetaggerwrapper.pyc in tag_text(self, text, numlines, tagonly, prepronly, tagblanks, notagurl, notagemail, notagip, notagdns, nosgmlsplit) 
    1302    # Raise exception now, with an explicit message. 
    1303    logger.error("Must use *unicode* string as text to tag, not %s.", type(text)) 
-> 1304    raise TreeTaggerError("Must use *unicode* string as text to tag.") 
    1305 
    1306   if isinstance(text, six.text_type): 

TreeTaggerError: Must use *unicode* string as text to tag. 

Wo ich die Abkürzung Datei lade für Englisch und Spanisch ?, und wie kann ich Treetaggerwrapper korrekt installieren ?.

Antwort

3

Die Methode verwendet nur Unicode-Strings eine u zu Zeichenfolge hinzuzufügen, um eine Unicode-String:

tags = tagger.TagText(u"This is a very short text to tag.") 

"This is a very short text to tag." ist ein str Typ, sobald Sie fügen Sie den u es ist Unicode:

In [12]: type("This is a very short text to tag.") 
Out[12]: str 

In [13]: type(u"This is a very short text to tag.") 
Out[13]: unicode 

Wenn Sie die str aus einer anderen Quelle einnahmen würden Sie entschlüsseln müssen:

In [15]: s = "This is a very short text to tag." 

In [16]: type(s) 
Out[16]: str 

In [17]: type(s.decode("utf-8")) 
Out[17]: unicode 

Die Tagging-Skripte können here

+0

Danke für die Hilfe, auf der anderen Seite heruntergeladen werden ich immer noch die gleiche Warnung erhalten: 'ACHTUNG: TreeTagger: Abkürzung Datei nicht gefunden: Englisch-Abkürzungen ACHTUNG: TreeTagger: Verarbeitung ohne Abkürzungsdatei '. Irgendeine Idee, wie man den Pfad spezifiziert oder scuh Akten herunterlädt ?. – tumbleweed

+1

Welches Betriebssystem verwenden Sie? –

+0

OSX ... danke für die Hilfe! – tumbleweed