我想确定给定字符串中的单词,这些字符串是域名。我有大约5000个域名和一个包含60000个字典单词的字典需要检查。这将导致每个域名检查60000次,总计大约300.000.000次操作,这就是疯狂。
因此,我想问是否有更聪明的方法来解决这个问题,仍然可以得到字符串中存在的单词。
我已经尝试过使用简单的循环来做到这一点,但我认为这需要一个更聪明的解决方案才能处理大量的检查。
dictionary_of_words = ["I", "Stack", "overflow", "like", etc]
AllDomains = ["stackoverflow.com", "iLikeStackoverflow.com", etc]
def in_dictionary(AllDomains):
#Setting a new column
AllDomains["dictionary"] = False
AllDomains["words"] = None
for i in range(len(AllDomains)):
# Scan if the entire word is in the dictionary
if AllDomains["domain"].str.strip(".nl").str.lower().iloc[i] in dictionary_of_words:
AllDomains["dictionary"].iloc[i] = True
print(AllDomains["domain"].iloc[i])
# Scan which words there are in the domain
else:
for word in dictionary_of_words:
print(word)
if word in AllDomains["domain"].str.strip(".nl").str.lower().iloc[i]:
if AllDomains["words"].iloc[i] == None:
AllDomains["words"].iloc[i] = word
else:
AllDomains["words"].iloc[i] = AllDomains["words"].iloc[i] + f", {word}"
print(AllDomains["domain"].iloc[i])
return AllDomains