2.1 表示已经标注的词符

按照 NLTK 的约定,一个已标注的词符使用一个由词符和标记组成的元组来表示。我们可以使用函数str2tuple()从表示一个已标注的词符的标准字符串创建一个这样的特殊元组:

  1. >>> tagged_token = nltk.tag.str2tuple('fly/NN')
  2. >>> tagged_token
  3. ('fly', 'NN')
  4. >>> tagged_token[0]
  5. 'fly'
  6. >>> tagged_token[1]
  7. 'NN'

我们可以直接从一个字符串构造一个已标注的词符的列表。第一步是对字符串分词以便能访问单独的单词/标记字符串,然后将每一个转换成一个元组(使用str2tuple())。

  1. >>> sent = '''
  2. ... The/AT grand/JJ jury/NN commented/VBD on/IN a/AT number/NN of/IN
  3. ... other/AP topics/NNS ,/, AMONG/IN them/PPO the/AT Atlanta/NP and/CC
  4. ... Fulton/NP-tl County/NN-tl purchasing/VBG departments/NNS which/WDT it/PPS
  5. ... said/VBD ``/`` ARE/BER well/QL operated/VBN and/CC follow/VB generally/RB
  6. ... accepted/VBN practices/NNS which/WDT inure/VB to/IN the/AT best/JJT
  7. ... interest/NN of/IN both/ABX governments/NNS ''/'' ./.
  8. ... '''
  9. >>> [nltk.tag.str2tuple(t) for t in sent.split()]
  10. [('The', 'AT'), ('grand', 'JJ'), ('jury', 'NN'), ('commented', 'VBD'),
  11. ('on', 'IN'), ('a', 'AT'), ('number', 'NN'), ... ('.', '.')]