

tsvファイルを読み込み、IDと単語を各行ごとに紐づけて分かち書きをしました。  
このうち、単語のみを文章ごとにリストに格納するコードが分かりません。  
したいアウトプットの形としては[['単語','単語'],['単語'.....]...]  
という形です。  
どなたかコードのご教授お願い致します。

[code]

    from gensim.models.doc2vec import Doc2Vec
    from gensim.models.doc2vec import TaggedDocument
    
    import MeCab
    import csv
    
    mt = MeCab.Tagger()
    
    reports = []
    
    with open("tfidf.tsv",mode='r',encoding='utf-8') as f:
        # reports.tsvには一行に口コミID,口コミがtab区切りで保存されている
        reader = csv.reader(f, delimiter="\t")
        for report_id, report in reader:
            words = []
            node = mt.parseToNode(report)
            while node:
                    if node.feature.split(",")[0] == u"名詞":
                            words.append(node.surface)
                    elif node.feature.split(",")[0] == u"形容詞":
                            words.append(node.feature.split(",")[6])
                    elif node.feature.split(",")[0] == u"動詞":
                            words.append(node.feature.split(",")[6])
                    node = node.next
    
            stopword = ['れる','の','られる','せる','させる','LED','pantone','20','30','β','3','？','9','（','\u3000','＆','A','W','％','×','"','６','15','1994','３',"'",'GW','25','OO','s','1','/','500','%','.','0','2020','V','13','5','180','-', '%)','(','+','４','8','10','100','14','ABS','4','K','"','７','50','．','33','５','上','器','丿','・','０','40','7', '?','）','60','＋','２','／','、','。','「','」','2','1000','1010123','1093','12','120','16','17','1930','1972','200','2002','21','24','260','27','34','35','36','360','37','40000','4136','43','480','70','75','agata','back','ball','basic','cd','chadwick','chair','co','crt','daa','degrees','dm','dvd','eco','epd','eva','fsc','gulfman','homearchi','hybrid','ic','ipad','ipod','lan','leavbes','led','may','md','mdf','mf','mm','mmx','ms','nanoe','nasa','nc','no','oa','off','ohashi','ojigi','on','pantone','pc','pet','pp','prism','pro','rom','sd','shock','soho','td','the','to','tpo','trek','usb','ventura','way','wear','ａｖ','ｄｉｙ','led','ｌｅｄ','ｐｃ','１つ','２つ','そう','どこ','ここ','これ','この','いつ','こんな','いくつ','これら','どの','その','それぞれ','そのもの','こうした','それ','それなり','こちら','だれ','こういう','そういう','そういった','どう','どちら','どれ','どんな','どんなに','もの','こと','ところ','よう','ため','ぶり','がち','さ','み','等','度','時','事','感','点','所','為','面','用','的','化','性','約','材','者','力','色','部','品','ある程度','中','部分','全体','ある','いる','なる','おる','行く','いく','来る','くる','とる','見る','みる','言う','いう','過ぎる','すぎる','する','やる','行う','おこなう','行なう','出来る','できる','感じる','思う','おもう','考える','かんがえる','わかる','分かる','分る','見える','みえる','知る','しる','知れる','しれる','言える','いえる','示す','しめす','述べる','のべる','書く','かく','よる','だす','出す','入る','はいる','いれる','入れる','使う','つかう','用いる','もちいる','持つ','もつ','もてる','持てる','作る','つくる','なす','起こる','おこる','つく','つける','付く','付ける','聞く','よぶ','きく','呼ぶ','ない','高い','低い','多い','少ない','強い','大きい','小さい','長い','ながい','よい','良い','悪い','いい','やすい','にくい','うまい','デザイン','評価','機能','商品','製品','感じ']
            words2 = [token for token in words if token not in stopword]# wordsが文章の単語のリスト,tagsには文章IDを指定
            reports.append(TaggedDocument(words=words2, tags=[report_id]))
    
[/code]


CC BY-SA 4.0
2019-12-01T13:24:28.943
60988
2020-07-24T06:00:07.873
36375
question
python mecab 自然言語処理
tsvファイルに書かれている文章を分かち書きし、文章ごとに単語を入れ子構造リストとして格納したい


具体的にお求めの成果物が分かりかねますので、推量を含む回答です。  
`[['単語','単語'],['単語'.....]...]`で単語を区切ったリストを作るならば、for文の中で作成した`word`を別のリストに追加することで作成できます。

下記のサンプルコードは辞書(`wordDic`)のキーとして`report_id`を残し、質問文のコードとご質問のリストを両方出せるコードになっています。

サンプルコード

[code]

    from gensim.models.doc2vec import Doc2Vec
    from gensim.models.doc2vec import TaggedDocument
    
    import MeCab
    import csv
    
    mt = MeCab.Tagger()
    
    reports = [] # TaggedDocumentのリスト(元の質問のまま)
    wordDic = {} # 各行のreport_idと文章ごとに単語のみ入れたリスト
    
    # 一行に口コミID,口コミがtab区切りの文字列
    tsv = ["1\tこのLEDをusbで起動させる", "2\tnasaとjaxaは一体いつohashiを作ったのか", "3\tそのojigiのdegreesは大きすぎる"]
    reader = csv.reader(tsv, delimiter="\t")
    for report_id, report in reader:
        words = []
        node = mt.parseToNode(report)
        while node:
            if node.feature.split(",")[0] == u"名詞":
                words.append(node.surface)
            elif node.feature.split(",")[0] == u"形容詞":
                words.append(node.feature.split(",")[6])
            elif node.feature.split(",")[0] == u"動詞":
                words.append(node.feature.split(",")[6])
            node = node.next
    
        wordDic[report_id] = words
    
    stopword = ['れる','の','られる','せる','させる','LED','pantone','20','30','β','3','？','9','（','\u3000','＆','A','W','％','×','"','６','15','1994','３',"'",'GW','25','OO','s','1','/','500','%','.','0','2020','V','13','5','180','-', '%)','(','+','４','8','10','100','14','ABS','4','K','"','７','50','．','33','５','上','器','丿','・','０','40','7', '?','）','60','＋','２','／','、','。','「','」','2','1000','1010123','1093','12','120','16','17','1930','1972','200','2002','21','24','260','27','34','35','36','360','37','40000','4136','43','480','70','75','agata','back','ball','basic','cd','chadwick','chair','co','crt','daa','degrees','dm','dvd','eco','epd','eva','fsc','gulfman','homearchi','hybrid','ic','ipad','ipod','lan','leavbes','led','may','md','mdf','mf','mm','mmx','ms','nanoe','nasa','nc','no','oa','off','ohashi','ojigi','on','pantone','pc','pet','pp','prism','pro','rom','sd','shock','soho','td','the','to','tpo','trek','usb','ventura','way','wear','ａｖ','ｄｉｙ','led','ｌｅｄ','ｐｃ','１つ','２つ','そう','どこ','ここ','これ','この','いつ','こんな','いくつ','これら','どの','その','それぞれ','そのもの','こうした','それ','それなり','こちら','だれ','こういう','そういう','そういった','どう','どちら','どれ','どんな','どんなに','もの','こと','ところ','よう','ため','ぶり','がち','さ','み','等','度','時','事','感','点','所','為','面','用','的','化','性','約','材','者','力','色','部','品','ある程度','中','部分','全体','ある','いる','なる','おる','行く','いく','来る','くる','とる','見る','みる','言う','いう','過ぎる','すぎる','する','やる','行う','おこなう','行なう','出来る','できる','感じる','思う','おもう','考える','かんがえる','わかる','分かる','分る','見える','みえる','知る','しる','知れる','しれる','言える','いえる','示す','しめす','述べる','のべる','書く','かく','よる','だす','出す','入る','はいる','いれる','入れる','使う','つかう','用いる','もちいる','持つ','もつ','もてる','持てる','作る','つくる','なす','起こる','おこる','つく','つける','付く','付ける','聞く','よぶ','きく','呼ぶ','ない','高い','低い','多い','少ない','強い','大きい','小さい','長い','ながい','よい','良い','悪い','いい','やすい','にくい','うまい','デザイン','評価','機能','商品','製品','感じ']
    for report_id in wordDic:
        print(wordDic[report_id])
        words2 = [token for token in wordDic[report_id] if token not in stopword]
        reports.append(TaggedDocument(words=words2, tags=[report_id]))
    
    print(reports)
    # words の単語のみを文章ごとにリストに格納するコード
    print(list(wordDic.values()))
    # words2の単語のみを文章ごとにリストに格納するコード
    print([report.words for report in reports])
    
[/code]

出力内容

[code]

    ['LED', 'usb', '起動', 'する', 'せる']
    ['nasa', 'jaxa', 'いる', 'ohashi', '作る', 'の']
    ['ojigi', 'degrees', '大きい', 'すぎる']
    [TaggedDocument(words=['起動'], tags=['1']), TaggedDocument(words=['jaxa'], tags=['2']), TaggedDocument(words=[], tags=['3'])]
    [['LED', 'usb', '起動', 'する', 'せる'], ['nasa', 'jaxa', 'いる', 'ohashi', '作る', 'の'], ['ojigi', 'degrees', '大きい', 'すぎる']]
    [['起動'], ['jaxa'], []]
    
[/code]


CC BY-SA 4.0
2020-07-24T06:00:07.873
68887
2020-07-24T06:00:07.873
9820
60988
answer