3,000 万件の投稿と、600 のブランドを表す 600 のクエリがあります。
たとえば、クエリ"Harry Potter" OR "Harry"
はブランド Harry Potter を表し、
投稿は次のようになります。
Yesterday I went to see harry potter. The movie was great!
投稿テキストを表すクラスがあり、投稿テキスト内の用語 ( 、 )Post
を検索する操作を処理する関数も含まれています。
別のクラスは、クエリを表し、 と通信します。
10 万件以上の投稿をコードで実行したところ、30 分かかりました。"Harry"
"Harry Potter"
Query
Post
class Post:
def __init__(self, post):
self._postString = post
self._postString = re.sub(r'\s{2,}', ' ', self._postString)
self._parsedSen = self._postString.split(' ')
self._length = len(self._parsedSen)
def isTermAppear(self, term):
k = None
termArr = term.split(' ')
for i in range(self._length):
if i + len(termArr) <= len(self._parsedSen):
k = i
flag = True
for j in range(len(termArr)):
if not self._parsedSen[k].lower().find(termArr[j].lower()) >= 0:
flag = False
k += 1
if flag:
return True
return False
次に、関数を自明なものに変更し、コードを再度実行しました。今回は3分かかりました。
def isTermAppear(self, term):
return False
どうすれPost
ばより効率的になりますか?