我寫了在文本中查找同形異義詞的函數。如何簡化查找同形異義詞的功能?
同形異義詞是一個單詞,與另一個 單詞共享相同的書面形式,但具有不同的含義。
爲此,我使用了NLTK的POS-Tagger(pos_tag)。
POS-tagger處理單詞序列,並將 語音標記的一部分附加到每個單詞。
例如: [( '和', 'CC'),( '現在', 'RB'),( '對', 'IN'),( '東西', 'NN' ), ('完全','RB'),('不同','JJ')]。
碼(編輯):
def find_homographs(text):
homographs_dict = {}
if isinstance(text, str):
text = word_tokenize(text)
tagged_tokens = pos_tag(text)
for tag1 in tagged_tokens:
for tag2 in tagged_tokens:
try:
if dict1[tag2] == tag1:
continue
except KeyError:
if tag1[0] == tag2[0] and tag1[1] != tag2[1]:
dict1[tag1] = tag2
return homographs_dict
它的工作原理,但是需要太多的時間,因爲我用兩個週期for
。請給我建議我怎樣才能簡化它並且讓速度更快。
Alexis,它的工作原理錯誤。 – GiveItAwayNow
錯誤如何?你將不得不更具體。我在發佈之前測試了我的代碼,並且它可以正常工作。你的輸出格式不能處理帶有三個或更多POS標籤的單詞,所以我的詞典有單詞作爲鍵和POS標籤集作爲值。 – alexis
亞歷克西斯,這是我的壞,我很抱歉。你的代碼完美地工作。感謝您的建議。 – GiveItAwayNow