将元组更改为小写 - 特定情况(Python;NLTK)
Changing tuple to lowercase - specific situation (Python; NLTK)
我正在使用 Python 和 NLTK 并尝试将 Brown Corpus 更改为小写。
特别是,我的目标是用每个词最可能的词性(例如,"Christmas" 是一个名词)标记一个词表。但是,我的单词列表包含所有小写单词 ("christmas")。因此,由于大小写不匹配,某些单词未被识别。
brown.tagged_sents() 中的元组如下所示:
[[(u'The', u'AT'), (u'Fulton', u'NP-TL'), (u'County', u'NN-TL'),...
我试过以下代码:
brown_sents = brown.tagged_sents()
brown_sentslower = [[x.lower() for x in element] for element in brown_sents]
但仍然收到错误:
AttributeError: 'tuple' object has no attribute 'lower'
我成功地复制了另一个答案 (Python: Using lower function on tuples) 的结果,但我想知道将这段代码与 brown.tagged_sents() 一起使用是否有什么特别之处。
小写元素在元组中:
brown_sentslower = [[(word.lower(), tag.lower()) for word, tag in element]
for element in brown_sents]
请注意,我在 for
循环中使用了元组解包;每个 (word, tag)
对都被解压缩到 word
和 tag
变量中,因此您可以单独处理它们。然后循环生成一个 new 元组,其中包含这两个值的小写版本。
这假设您希望单词 和 标签都小写;例如(u'Fulton', u'NP-TL')
变为 (u'fulton', u'np-tl')
.
如果只需要将单词小写,请将 tag.lower()
替换为 tag
:
brown_sentslower = [[(word.lower(), tag) for word, tag in element]
for element in brown_sents]
我正在使用 Python 和 NLTK 并尝试将 Brown Corpus 更改为小写。
特别是,我的目标是用每个词最可能的词性(例如,"Christmas" 是一个名词)标记一个词表。但是,我的单词列表包含所有小写单词 ("christmas")。因此,由于大小写不匹配,某些单词未被识别。
brown.tagged_sents() 中的元组如下所示:
[[(u'The', u'AT'), (u'Fulton', u'NP-TL'), (u'County', u'NN-TL'),...
我试过以下代码:
brown_sents = brown.tagged_sents()
brown_sentslower = [[x.lower() for x in element] for element in brown_sents]
但仍然收到错误:
AttributeError: 'tuple' object has no attribute 'lower'
我成功地复制了另一个答案 (Python: Using lower function on tuples) 的结果,但我想知道将这段代码与 brown.tagged_sents() 一起使用是否有什么特别之处。
小写元素在元组中:
brown_sentslower = [[(word.lower(), tag.lower()) for word, tag in element]
for element in brown_sents]
请注意,我在 for
循环中使用了元组解包;每个 (word, tag)
对都被解压缩到 word
和 tag
变量中,因此您可以单独处理它们。然后循环生成一个 new 元组,其中包含这两个值的小写版本。
这假设您希望单词 和 标签都小写;例如(u'Fulton', u'NP-TL')
变为 (u'fulton', u'np-tl')
.
如果只需要将单词小写,请将 tag.lower()
替换为 tag
:
brown_sentslower = [[(word.lower(), tag) for word, tag in element]
for element in brown_sents]