繁体   English   中英

如何创建元组列表列表?

[英]how to create a list of list of tuples?

我有一个文档,它被读取为元组列表的列表。 对于每个元组中的每个元素都是(word, label)对。

基本上,文档是一个句子列表,其中每个句子都是一个元组列表。

我试图忽略出现次数少于 10 次的单词,并根据以前的格式构建一个新文档。 为此,我正在使用此代码:

     i=0;
     j=0;
     dictWords=dict()
     for sentence in ldata:
       for word in sentence:
        j=j+1
        if word[0] not in dictWords:
           dictWords[word[0]]=1
           i=i+1
        else:
           dictWords[word[0]]=1+dictWords[word[0]]

    ldata=[[("the","det"),("boy","noun"),("is",'verb'),("ugly","adj")], [("I","Pronoun"), ("am","verb") ("here" ,"Place")]
    lnewdata = []

    i = 0
    for sentence in ldata:
       newSent = []
       for word in sentence:
       if dictWords[word[0]] < 10:
          newSent.append(("unk","unk"))
          #dictWords is a dictionnary containing each word's occurences
       else:
          newSent.append(word)   
          i = i + 1
lnewdata.extend(newSent)

我的问题是 lnewdata 在这种格式下变成了:

[["the" "det" "boy" "noun" "is" "verb" "ugly" "adj"] ["I" "noun" "am" "verb" "here" "Place" ]

你有什么建议来解决这个问题?

试图理解你的问题,我主要可以弄清楚以下几点。

  1. 您有一个包含多个元组的文档,例如 (word,label)

  2. 您希望出现出现次数超过 10 的单词并创建一个新列表。

我不明白你为什么要追加出现次数小于 10 的元组。

这是我可以弄清楚的代码。

    lnewdata=[]
    i=0;
    for sentence in ldata:
       newSent=[]
       for word in sentence:
       if dictWords.count(word[0])>10:
          newSent.append((word[0],word[1]))
    lnewdata = list(newSent)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM