我想找到单词的同义词。
如果单词是tall building
,那么我想查找该单词的所有同义词,例如"long apartment ,large building"
等
我用过Spacy。
import en_core_web_sm
nlp = en_core_web_sm.load()
LOOP
nlp('tall building').similarity(nlp(mytokens[i]))
我不能使用它,因为它需要很多时间
neither I can use PhraseMatcher for this
请帮助我
预先感谢
[您可以尝试使用漂亮的汤来解析在线同义词库中的数据,或者使用python模块,例如[py-thesaurus]:https://pypi.org/project/py-thesaurus/
from bs4 import BeautifulSoup as soup
from urllib.request import urlopen as uReq
from urllib.error import HTTPError
def find_synonym(string):
""" Function to find synonyms for a string"""
try:
# Remove whitespace before and after word and use underscore between words
stripped_string = string.strip()
fixed_string = stripped_string.replace(" ", "_")
print(f"{fixed_string}:")
# Set the url using the amended string
my_url = f'https://thesaurus.plus/thesaurus/{fixed_string}'
# Open and read the HTMLz
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()
# Parse the html into text
page_soup = soup(page_html, "html.parser")
word_boxes = page_soup.find("ul", {"class": "list paper"})
results = word_boxes.find_all("div", "list_item")
# Iterate over results and print
for result in results:
print(result.text)
except HTTPError:
if "_" in fixed_string:
print("Phrase not found! Please try a different phrase.")
else:
print("Word not found! Please try a different word.")
if __name__ == "__main__":
find_synonym("hello ")