使用python的数组

使用python的数组,python,Python,我有两个数组。查询数组和干数组。 stem|U数组具有格式元素(单词|同义词)。查询数组中有单词 我想检查query\u数组中是否有包含在stem\u数组的同义词部分的单词,如果是,则将同义词映射到实际单词 例如:查询数组(总统、真实性) stem|U阵列(总统|总统,真实|真实性,认证) 因此,我的最终阵列应该返回(总统和真实) 请帮助我,因为我是python新手,我有一个项目要完成 谢谢。将stem数组扩展到字典中,以便每个都是字典中的一个键,值是其所有同义词的列表: stem_dict =

我有两个数组。查询数组和干数组。 stem|U数组具有格式元素(单词|同义词)。查询数组中有单词

我想检查query\u数组中是否有包含在stem\u数组的同义词部分的单词,如果是,则将同义词映射到实际单词

例如:查询数组(总统、真实性) stem|U阵列(总统|总统,真实|真实性,认证) 因此,我的最终阵列应该返回(总统和真实)

请帮助我,因为我是python新手,我有一个项目要完成


谢谢。

将stem数组扩展到字典中,以便每个都是字典中的一个键,值是其所有同义词的列表:

stem_dict = { 'presidential': ['president'], 'president': ['presidential'], 'authentic': ['authenticity', 'authentication'], 'authenticity': ['authentic', 'authentication'], 'authentication': ['authentic', 'authenticity'], } 干膜厚度={ “总统”:[“总统”], “总统”:[“总统”], “真实性”:[“真实性”、“身份验证”], “真实性”:[“真实性”、“身份验证”], “身份验证”:[“真实性”、“真实性”], } 现在,任何单词的答案都只是一个
词干[word]


看起来每个同义词列表都是一个带分隔符的字符串,所以请使用string.split将它们拆分,以便您可以将它们放入字典。

我假设您在这里完全迷失了方向,并一步一步地进行操作,以便您能够了解将来如何进行此操作。但是听起来你需要做一些python教程。所有这些都是未经测试的代码

以合理的格式获取查询:

query_string = query_array[1:-1] #remove the parentheses with slicing
queries_with_whitespace = query_string.split(",") #split the string into a list
queries = [query.strip() for query in queries_with_whitespace] #remove whitespace
# queries = [item.strip() for item in query_array[1:-1].split(",")] #all in one
同义词也一样。以下是您的一根阀杆串:

def stem_and_syns(unformatted_string): #unformatted string is your stem_array
    stem_string = unformatted_string[1:-1] #same as before
    stem, synonyms_string = stem_string.split("|") #split the stem and synonyms
    stem = stem.strip() #clean the stem
    synonyms = [synonym.strip() for synonym in synonym_string.split(",")] #same as before
    return stem, synonyms
但是,在反向查找中需要同义词。你是否意识到,对于任何给定的单词,它既可以是词干,也可以是同义词?任何单词都可以有多个词干?你需要弄清楚在那种情况下该怎么办。无论如何,以下是反向查找:

stem_lookup = {}
for stem_string in stem_strings #stem_strings is the set of all of your non-formatted stem strings
    stem, synonyms = stem_and_syns(stem_string)
    for synonym in synonyms:
        #point all synonyms to a list of possible stems
        stem_lookup.setdefault(synonym, []).append(stem)) #make a new list if this synonym not used yet
最后,通过从一开始的查询(同样,这使得一组假设对我来说很容易,但可能无法满足您的需要):


你的数据真的是那种格式吗?例如,字符串“(president | presidential)”粘贴真实代码。你描述的“数组”毫无意义。@yakiimo:是的。它的字面格式是这样的。您的同义词集有多大?请查看python词典:
result = [stem_lookup.get(original,original) for original in queries] #uses original itself if it's not a synonym