Search 查找给定单词的同义词和相关单词

Search 查找给定单词的同义词和相关单词,search,artificial-intelligence,word,Search,Artificial Intelligence,Word,我想要实现的是,找到所有与给定单词相关的、相似的、同义的、相关的单词。 例如,如果我给出一个词: 病毒预期结果可能是细菌、药物、疾病、冠状病毒等 基本上,当你想到这个词的时候,脑海中浮现的一切 是否有任何基于人工智能的API,可能是AWS或谷歌云引擎服务,我可以实现这个结果?还是开源数据库和/或工具?试试看 这正是您正在搜索的内容,而且是免费的。这将满足您的需求 import pandas as pd import nltk.corpus from nltk.corpus import sto

我想要实现的是,找到所有与给定单词相关的、相似的、同义的、相关的单词。 例如,如果我给出一个词:

病毒
预期结果可能是细菌、药物、疾病、冠状病毒等

基本上,当你想到这个词的时候,脑海中浮现的一切

是否有任何基于人工智能的API,可能是AWS或谷歌云引擎服务,我可以实现这个结果?还是开源数据库和/或工具?

试试看


这正是您正在搜索的内容,而且是免费的。

这将满足您的需求

import pandas as pd
import nltk.corpus
from nltk.corpus import stopwords, wordnet
from nltk.tokenize import word_tokenize
from nltk.stem import PorterStemmer, WordNetLemmatizer
from collections import defaultdict
from nltk.corpus import wordnet   
from nltk.tokenize import word_tokenize


df = pd.read_csv("C:\\your_path\\synonyms_antonyms.csv")


# pick a field from a dataframe; convert to text and make all lower case
df['review_text'] = df['review_text'].astype('str')
df['review_text'] = df['review_text'].str.lower()
df['review_text'] = df['review_text'].str.split(',')

df.dtypes


my_list = df['review_text'].values.tolist()

s = ','.join(str(v) for v in my_list)


type(s)
tokens = word_tokenize(s)

# Store results in a dict where key is token and value is a set of synonyms and antonyms 
tokens_syns, tokens_ant = defaultdict(set), defaultdict(set)

for token in tokens:
    for synset in wordnet.synsets(token):
        for lemma in synset.lemmas():
            tokens_syns[token].add(lemma.name()) # Add the synonyms
            if lemma.antonyms():    # Check if antonyms are available
                tokens_ant[token].add(lemma.antonyms()[0].name()) # Add antonyms


# Check for 'skin'
token = 'skin'
print(f'For the word "{token}":')
print('The synonyms are:', tokens_syns[token])
print('The antonyms are:', tokens_ant[token])


# Conclusion:
For the word "skin":
The synonyms are: {'scramble', 'pelt', 'shinny', 'pare', 'cutis', 'hide', 'shin', 'bark', 'sputter', 'struggle', 'clamber', 'scrape', 'tegument', 'peel', 'skin'}
The antonyms are: set()