【问题标题】:Unicode Tagging in Python NLTKPython NLTK 中的 Unicode 标记
【发布时间】:2015-08-13 20:18:00
【问题描述】:

我正在开发一个 python NLTK 标记程序。 我的输入文件是包含多行的印地语文本。 在标记文本并使用 pos_tag 时,我得到的输出仅带有 NN 标签。 但是以英文句子作为输入,它会进行正确的标记。 请帮助。 版本 - Python 3.4.1,来自 NLTK 3.0 文档


请帮忙! 这是我尝试过的。

word_to_be_tagged = u“ताजोस्वासआनीचकचकीतदांततुमचेंतुमचेंव्यक्तीमत्वपरजळायतातव्यक्तीमत्वव्यक्तीमत्वव्यक्तीमत्वव्यक्तीमत्वव्यक्तीमत्वव्यक्तीमत्वव्यक्तीमत्वव्यक्तीमत्वव्यक्तीमत्वव्यक्तीमत्वव्यक्तीमत्वव्यक्तीमत्वव्यक्तीमत्वव्यक्तीमत्वव्यक्तीमत्वव्यक्तीमत्वव्यक्तीमत्वव्यक्तीमत्वव्यक्तीमत्वव्यक्तीमत्वव्यक्तीमत्वव्यक्तीमत्वव्यक्तीमत्वव्यक्तीमत्वव्यक्तीमत्वव्यक्तीमत्वव्यक्तीमत्व

from nltk.corpus import indian

train_data = indian.tagged_sents('hindi.pos')[:300] 
test_data = indian.tagged_sents('hindi.pos')[301:] 

print(word_to_be_tagged)
print (train_data)

我得到的输出是不同的。

ताजो स्वास आनी चकचकीत दांत तुमचें व्यक्तीमत्व परजळायतात.
[[('पूर्ण', 'JJ'), ('प्रतिबंध', 'NN'), ('हटाओ', 'VFM'), (':', 'SYM'), ('इराक', 'NNP')], [('संयुक्त', 'NNC'), ('राष्ट्र', 'NN'), ('।', 'SYM')], ...]

【问题讨论】:

  • 我的代码是 - 作为单个句子输入 import nltk s=nltk.pos_tag(nltk.word_tokenize("ताजो स्वास आनी चकचकीत दांत तुमचें व्यक्तीमत्व परजळायतात.")) print(s) 输出 - >>> [('ताजो', 'NN'), ('स्वास', 'NN'), ('आनी ','nn'),('चकचकीत','nn'),('दांत','nn'),('तुमचें','nn'),('व्यक्तीमत्व','nn'),('परजळायतात ', 'NN'), ('.', '.')]

标签: python nltk python-3.4


【解决方案1】:

问题是你应该使用印地语词性标注器:

from nltk.corpus import indian
from nltk.tag import tnt

train_data = indian.tagged_sents('hindi.pos')
tnt_pos_tagger = tnt.TnT()
tnt_pos_tagger.train(train_data) #Training the tnt Part of speech tagger with hindi data

print tnt_pos_tagger.tag(nltk.word_tokenize(word_to_be_tagged))

问题在于词性标注器在特定领域(主要是语言和主题的组合)是准确的。在英语中,标注器尚未看到的大部分单词都是名词 (NN),它只用 NN 标记您的数据。

如果你用相同的域训练它,你希望它在(印地语)之后标记,它应该没问题。

更多解释请见this

【讨论】:

  • 在尝试相同时,得到以下错误文件“C:\Python34\lib\encodings\cp1252.py”,第 23 行,在 decode return codecs.charmap_decode(input,self.errors,解码表)[0] UnicodeDecodeError:“charmap”编解码器无法解码位置 21 中的字节 0x8d:字符映射到
  • 嗯,它还没有解决......我在训练数据集时遇到了困难。我需要这方面的一些帮助。因为根据数据训练,我将能够标记文本..那是post_tag。请帮忙!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-02
  • 1970-01-01
  • 2013-03-13
相关资源
最近更新 更多