Es gibt viele japanische Bibliotheken in natürlicher Sprache, die die Verarbeitung aufgrund eines Fehlers stoppen, sobald Sie Hebräisch oder Koreanisch drücken. Hier sind einige nützliche Zaubersprüche in solchen Fällen.
janome ist ein großartiger morphologischer Analysator, der Ihnen die Installation von MeCab erspart. Wenn jedoch auch nur ein nicht japanisches Zeichen eingemischt wird, sterben Sie mit einem Fehler. Im Beispiel des Lesens der linken Sprachschaltleiste von Wikipedia ...
Aus der Leiste links von Wikipedia
text = "Andere Sprachversion Italiano 한 국어 Polski Einfaches Englisch"
t = Tokenizer()
for token in t.tokenize(text):
print token
---------------
Traceback (most recent call last):
File "tests.py", line 98, in <module>
for token in t.tokenize(text):
File "lib/python2.7/site-packages/janome/tokenizer.py", line 107, in tokenize
pos += lattice.forward()
File "lib/python2.7/site-packages/janome/lattice.py", line 124, in forward
while not self.enodes[self.p]:
IndexError: list index out of range
python
import re
import nltk
def filter(text):
"""
:param text: str
:rtype : str
"""
#Beseitigen Sie Alphabete, alphanumerische Zeichen halber Breite, Symbole, Zeilenumbrüche und Tabulatoren
text = re.sub(r'[a-zA-Z0-9¥"¥.¥,¥@]+', '', text)
text = re.sub(r'[!"“#$%&()\*\+\-\.,\/:;<=>?@\[\\\]^_`{|}~]', '', text)
text = re.sub(r'[\n|\r|\t]', '', text)
#Beseitigen Sie nicht japanische Zeichen(Koreanisch, Chinesisch, Hebräisch usw.)
jp_chartype_tokenizer = nltk.RegexpTokenizer(u'([Ah-Hmm]+|[EIN-Hmm]+|[\u4e00-\u9FFF]+|[Ah-んEIN-Hmm\u4e00-\u9FFF]+)')
text = "".join(jp_chartype_tokenizer.tokenize(text))
return text
text = "Andere Sprachversion Italiano 한 국어 Polski Einfaches Englisch"
text = filter(text)
t = Tokenizer()
for token in t.tokenize(text):
print token
------------------
Anderes Präfix,Nomenverbindung,*,*,*,*,andere,Ta,Ta
Sprachnomenklatur,Allgemeines,*,*,*,*,Sprache,Gengo,Gengo
Versionsnomenklatur,Suffix,Allgemeines,*,*,*,Auflage,Van,Van
Recommended Posts