文字列を受け取って、気になるキーワードがいくつあるのか数えてスコアを返すプログラムを書きました。
気になるキーワードは事前にCSVにして保存してあります。
python
1def kininaruscore(moji): 2 # 気になるキーワードは事前にcsvにしてある。 3 import csv 4 with open('/kininaru.csv', 'r', encoding = 'utf-8') as fin: 5 cin = csv.reader(fin) 6 kininaru = [row for row in cin] 7 8 # このあとmojiとkininaruを比較していきますがそれは省略 9 return score 10
次に、別のプログラムを書きました。
SQLiteのデータベースから、文字列を持ってきて、kininaruscoreに渡しています。
データベースから持ってきた文字列に、気になるスコアが付与されます。
python
1from benri import kininaru 2import sqlite3 3 4conn = sqlite3.connect('/moji.db') 5c = conn.cursor() 6 7c.execute('SELECT moji FROM moji') 8resultlist = c.fetchall() 9for result in resultlist: 10 print(kininaru.kininaruscore(result[0]))
これでうまくいってるのですが、気になることがあります。
これって、kininaruscoreを呼ぶたびにCSVファイルを読んでることになりますよね。
CSVファイルの中身は頻繁には変わらない予定なので、一度読み込んだら、2度目からは使い回しでいいと思っています。
関数を呼ぶたびに同じことをしてるのよくないですよね?
そのほうが効率がよさそうだと思ったのですが、どうしたらいいですか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/23 05:09
2017/07/23 05:15
2017/07/23 05:22
2017/07/24 07:51