用法语和葡萄牙语做标记

2024-09-27 07:20:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我用过这两个例子

>>> french_tokenizer=nltk.data.load('tokenizers/punkt/french.pickle')
>>> french_tokenizer.tokenize('Deux agressions en quelques jours,voilà ce qui a motivé hier matin le débrayage collège franco-britanique deLp')
['Deux agressions en quelques jours,voil\xc3\xa0 ce qui a motiv\xc3\xa9 hier matin le d\xc3\xa9brayage coll\xc3\xa8ge franco-britanique deLp']
>>> port_tokenizer=nltk.data.load('tokenizers/punkt/portuguese.pickle')
>>> port_tokenizer.tokenize('Seguranças dos aeroportos começam greve de cinco dias no sábado')
['Seguran\xc3\xa7as dos aeroportos come\xc3\xa7am greve de cinco dias no s\xc3\xa1bado']

第一个是法语,第二个是法语葡萄牙语。为什么我有这些问题吗?第一个是在

voilà

Tags: dataloadpickletokenizerentokenizenltkfrench
1条回答
网友
1楼 · 发布于 2024-09-27 07:20:13

在Python2.7的命令行中键入unicode时,最好使用u'...'

>>> from nltk.tokenize import PunktSentenceTokenizer
>>> frtokenizer = PunktSentenceTokenizer('french')
>>> pttokenizer = PunktSentenceTokenizer('portuguese')
>>> s = u'Deux agressions en quelques jours,voilà ce qui a motivé hier matin le débrayage collège franco-britanique deLp'

>>> frtokenizer.tokenize(s)
[u'Deux agressions en quelques jours,voil\xe0 ce qui a motiv\xe9 hier matin le d\xe9brayage coll\xe8ge franco-britanique deLp']
>>> for sentence in frtokenizer.tokenize(s):
...     print sentence
... 
Deux agressions en quelques jours,voilà ce qui a motivé hier matin le débrayage collège franco-britanique deLp

要获取单词标记,请使用word_token

>>> from nltk import word_tokenize
>>> [word_tokenize(sent) for sent in frtokenizer.tokenize(s)]
[[u'Deux', u'agressions', u'en', u'quelques', u'jours', u',', u'voil\xe0', u'ce', u'qui', u'a', u'motiv\xe9', u'hier', u'matin', u'le', u'd\xe9brayage', u'coll\xe8ge', u'franco-britanique', u'deLp']]
>>> for sentence in frtokenizer.tokenize(s):
...     print word_tokenize(sentence)
... 
[u'Deux', u'agressions', u'en', u'quelques', u'jours', u',', u'voil\xe0', u'ce', u'qui', u'a', u'motiv\xe9', u'hier', u'matin', u'le', u'd\xe9brayage', u'coll\xe8ge', u'franco-britanique', u'deLp']

要获取字符串输出而不是字符串列表,请执行以下操作:

>>> for sentence in frtokenizer.tokenize(s):
...     print ' '.join(word_tokenize(sentence))
... 
Deux agressions en quelques jours , voilà ce qui a motivé hier matin le débrayage collège franco-britanique deLp

在Python2.7中读取unicode文件时:

$ cat somefrench.txt 
Deux agressions en quelques jours,voilà ce qui a motivé hier matin le débrayage collège franco-britanique deLp

$ python

>>> import io
>>> with io.open('somefrench.txt', 'r', encoding='utf8') as fin:
...     for line in fin:
...         print line
... 
Deux agressions en quelques jours,voilà ce qui a motivé hier matin le débrayage collège franco-britanique deLp

使用word_tokenizePunktSentenceTokenizer

>>> import io
>>> from nltk import word_tokenize
>>> from nltk.tokenize import PunktSentenceTokenizer
>>> frtokenizer = PunktSentenceTokenizer('french')
>>> with io.open('somefrench.txt', 'r', encoding='utf8') as fin:
...     for line in file:
...         for sent in frtokenizer.tokenize(line): # sentences
...             print ' '.join(word_tokenize(sent))
... 
Deux agressions en quelques jours , voilà ce qui a motivé hier matin le débrayage collège franco-britanique deLp

葡萄牙语:

>>> s = u'Seguranças dos aeroportos começam greve de cinco dias no sábado'
>>> pttokenizer = PunktSentenceTokenizer('portuguese')
>>> for sent in pttokenizer.tokenize(s):
...     print ' '.join(word_tokenize(sent))
... 
Seguranças dos aeroportos começam greve de cinco dias no sábado

相关问题 更多 >

    热门问题