txtとcsvの共通している用語が含まれている配列の個数を求める


1.csvの用語が1.txtの配列の中に含まれている配列の数を求めるプログラムを作成しています.現段階でcountメソッドを用いて1.txtに含まれる用語の個数を出力させました.しかし、用語数では無く、用語が含まれている配列の個数を求めたいのですがcountメソッドと配列のつなげ方が分からなかったので教えて頂きたいです.つまり、以下のような結果になればと考えています.  
**2.csv**

[code]

    first,2,1234
    second,1,2345
    
[/code]

**ソースコード**

[code]

    def main():
        # IDと単語のかかれたCSVを１行ずつの配列
        with open('1.csv','r') as a:
            rows = a.readlines()
        a.close()
    
        # 探す文章をまるごと１つの文字列に入れる
        with open('1.txt','r') as b:
            text=b.read()
            b.close()
    
        
        id_count = {}
    
        with open('2.csv','w') as c:
            c.write('用語, 回数, id\n')
            for row in rows:
                # id,word という文字列を , で分割
                tmp = row.split(',')
                id = tmp[0]
                # 改行を取り除くのとcsvの用語を全て小文字にする
                word = tmp[1].strip().lower()
                # textを小文字にし、text に word が何回入ってるか数える
                count = text.lower().count(word)
                #textにもし共通用語がなかったら出力しない
                if count==0:
                    pass
                else:
                    c.write('%s,%d,%s\n' % (word, count, id))
                
        c.close()
    
    if __name__ == '__main__':
        main()
    
[/code]

**1.txt**

[code]

    ['I was first.', 'I was first.']
    [' I was first.', 'I was second .']
    
[/code]

**1.csv**

[code]

    1234,first
    2345,second
    
[/code]




質問者さんの言う「配列」の意味は分かりませんが、1.txtの各行に1.csvの単語（"first","
second"）が含まれているかどうかをチェックして含まれている行数をカウントする、と解釈して2重ループを使った実装にしました。

[code]

    def main():
        # IDと単語のかかれたCSVを１行ずつの配列
        with open('1.csv','r') as a:
            rows = a.readlines()
    
        # 探す文章をまるごと１つの文字列に入れる
        with open('1.txt','r') as b:
            text=b.read()
    
        texts = text.split("\n")
        with open('2.csv','w') as c:
            c.write('用語, 回数, id\n')
            for row in rows:
                row = row.strip()
                count = 0
                for t in texts:
                    t = t.lower()
                    if row.strip().split(",")[1] in t:
                        count = count + 1
                c.write(",".join([row.split(",")[1], str(count), row.split(",")[0]]))
                c.write("\n")
                        
    if __name__ == '__main__':
        main()
    
[/code]




質問者さんの言う「配列」の意味は分かりませんが、1.txtの各行に1.csvの単語（"first","
second"）が含まれているかどうかをチェックして含まれている行数をカウントする、と解釈して2重ループを使った実装にしました。

[code]

    def main():
        # IDと単語のかかれたCSVを１行ずつの配列
        with open('1.csv','r') as a:
            rows = a.readlines()
    
        # 探す文章をまるごと１つの文字列に入れる
        with open('1.txt','r') as b:
            text=b.read()
    
        texts = text.split("\n")
        with open('2.csv','w') as c:
            c.write('用語, 回数, id\n')
            for row in rows:
                row = row.strip()
                count = 0
                for t in texts:
                    t = t.lower()
                    if row.strip().split(",")[1] in t:
                        count = count + 1
                c.write(",".join([row.split(",")[1], str(count), row.split(",")[0]]))
                c.write("\n")
                        
    if __name__ == '__main__':
        main()
    
[/code]

