`
zuroc
  • 浏览: 1307830 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

相似单词

 
阅读更多
给你一个单词a,如果通过交换单词中字母的顺序可以得到另外的单词b,那么定义b是a的兄弟单词。现在给你一个字典,用户输入一个单词,让你根据字典找出这个单词有多少个兄弟单词。
....
from itertools import tee,izip
from collections import defaultdict

def pairwise(iterable):
    a, b = tee(iterable)
    for elem in b:
        break
    return izip(a, b)

buf_array=[]
buf_no={}
key_from_id=0
def add_to_buf(word):
    global key_from_id,buf_array

    if len(word)==1:
        pass
        #TODO

    for pos,pair in enumerate(pairwise(word)):

        if len(buf_array)<pos+1:
            buf_array.append(defaultdict(set))
        pos_dict=buf_array[pos]
       
        key=list(pair)
        key.sort()
        key="".join(key)
        if key not in buf_no:
            buf_no[key]=key_from_id
            key_from_id+=1
       
        key=buf_no[key]

        pos_dict[key].add(word)


def find_in_buf(word):
    global key_from_id,buf_array

    if len(word)==1:
        pass
        #TODO
   
    exist = []
    for pos,pair in enumerate(pairwise(word)):
        if len(buf_array)<pos+1:
            return     
        pos_dict=buf_array[pos]

        key=list(pair)
        key.sort()
        key="".join(key)
       
        if key not in buf_no:
            continue
       
        key=buf_no[key]
        if key not in pos_dict:
            continue
       
        exist.append(pos_dict[key])
   
    count_dict=defaultdict(int)
    for i_set in exist:
        for i in i_set:
            count_dict[i]+=1
    result=[]
    min_match = len(word)-3
    for k,v in count_dict.iteritems():
        if v>=min_match:
            result.append(k)
    return result

add_to_buf("1234")
add_to_buf("ABCD")
add_to_buf("CABD")

print find_in_buf("ACBD")
分享到:
评论

相关推荐

    考研英语相似单词记忆

    在考研英语备考过程中,掌握相似单词的记忆技巧是提高词汇量的关键。这些单词往往在拼写、发音或意义上有所关联,容易混淆,因此需要通过对比学习来加深印象。 首先,我们来看一组与“适应”相关的词汇。"adapt"指...

    正则表达式查找相似单词的方法

    正则表达式查找相似单词的方法是正则表达式应用的一个重要方面,其基本思想是通过定义特定的模式(pattern),来匹配那些具有相似特征的单词或字符串序列。 从上述文件中我们可以提取以下知识点: 1. 正则表达式...

    Python查找相似单词的方法

    Python查找相似单词的方法,涉及了利用Python的字符串操作技巧,尤其是针对单词排列组合的处理。这种方法可以帮助我们找到与给定单词在字母顺序上相似的其他单词,即兄弟单词。所谓兄弟单词,指的是通过重新排列单词...

    2011相似易混单词记忆-李剑考研英语相似易混单词-对比记忆

    3. **提高效率**:集中处理相似单词,避免重复劳动,节约时间,提高学习效率。 4. **应对考试**:考研英语尤其重视阅读理解能力,对比记忆法有助于提高阅读速度和准确性,从而在考试中取得好成绩。 总之,对比记忆...

    2010相似易混单词记忆-李剑考研英语相似易混单词-对比记忆

    总的来说,"2010相似易混单词记忆-李剑考研英语相似易混单词-对比记忆.doc"这份文档是考研英语复习的重要参考资料,它通过对比记忆法帮助考生系统地掌握和区分相似单词,提升词汇能力,从而在考试中取得更好的成绩...

    word-frequency-react:计算给定单词和与Levenshtein距离不超过1的相似单词的频率

    笔记本条目中的词频-React计算一个给定单词的频率并在笔记本条目中找到它的相似单词(Levenshtein距离不超过1)。 该项目是通过引导的。可用脚本在项目目录中,可以运行:yarn start 在开发模式下运行应用程序。 ...

    Python-使用单词向量来交互式生成类似单词的列表

    4. **交互式应用**:在IPython或Jupyter Notebook环境中,可以编写一个函数,接收用户输入的单词,然后返回相似单词列表,实现交互式体验。 在实际应用中,还可以对模型进行调整以优化性能,例如改变向量维度...

    探究主流词汇APP的单词记忆法——以百词斩、知米背单词、墨墨背单词为例.pdf

    通过对比相似单词的不同,如"book"和"brook",用户能更容易地区分它们,避免混淆。这些APP会提供这类单词对比,引导用户有意识地进行区别记忆。 此外,语音记忆法同样被广泛运用。通过听音识词,用户可以建立单词...

    edit-distance-word-suggestion:使用编辑距离(Levenshtein距离)的单词建议,以查找词汇表中的下一个相似单词

    为了优化性能,可以采用一些策略,如使用Trie数据结构存储词汇表,这样在查找相似单词时可以减少比较次数。另外,还可以考虑使用启发式方法,如Wagner-Fischer算法的改进版,以减少计算量。 在实际应用中,这样的字...

    快速10000背单词 句子

    5. **音形义结合**:许多句子包含同音异义词或双关语,如pearls和pears,增强了记忆挑战,帮助学习者区分相似单词,提高听力和口语技能。 6. **难词与常见词搭配**:通过难词与常见词的组合,既能让学习者接触到更...

    快速拼写单词检查 源码

    这通常涉及对错误单词的相似单词搜索,以及使用词频统计来优化建议。 UML(统一建模语言)是软件工程中用来描述系统设计的重要工具。在这个项目中,UML可能包括以下图表: 1. 类图:展示了程序中的类及其关系,如...

    考研英语相似易混单词

    【考研英语相似易混单词】是针对考研英语复习的一个重要环节,主要针对的是考生在记忆单词过程中遇到的混淆和记忆难题。考研英语中,很多单词在拼写、发音或意义上存在相似性,容易导致考生在实际应用时混淆,进而...

    怎么提高记忆单词效率

    3. 以前学过的相似单词与新单词混淆,如同音词、近音词、形似词、同义词等。 艾宾浩斯的遗忘曲线理论揭示了遗忘的规律: 1. 单词的大概形状和结构较难遗忘,但具体字母容易忘记,尤其是长词、难词、特殊发音的词。 ...

    高考英语3500单词第25讲(单词速记与拓展).pdf

    - **相似单词**: -it 如: **it** (它), **bit** (一点儿), **fit** (适合), **hit** (击中), **spit** (吐痰), **sit** (坐), **pit** (坑)。 - **注意**: -it 结尾的单词发音相似,但意义不同。 #### 4. **Hobby**...

    英语单词记忆方法(巧记单词).ppt

    - 对于不熟悉的词根,可以通过已知的相似单词来记忆。如词根“it”表示“go”,“exit”中的“it”就表示“go out”,所以“exit”是“出口”的意思。同样,“visit”中的“vis”来自“see”,剩余的“it”同样表示...

    发音相似的英语单词.doc

    【发音相似的英语单词对比与理解】 在学习英语的过程中,我们常常会遇到一些发音相似但含义不同的单词。这些单词在口语交流中容易引起混淆,因此理解它们的区别至关重要。以下是一些例子,帮助我们区分这些易混词汇...

    2022.03全国青少年软件编程(C语言)等级考试试卷(六级).docx

    3. 如果单词不在词典中,找到所有相似单词并输出"单词x: 相似单词1 相似单词2 ...",若无相似单词,输出"u单词x"。 以上三个问题都涉及到基础的算法和数据结构知识,分别是多项式的操作、字符串处理和字符串相似度...

    小学英语单词记忆方法.doc

    12. **观察记忆法**(大串联记忆法):找出相似单词,一起记忆,如ice、rice、nice之间的关系。 13. **对比记忆法**:学习同义词、反义词、同形异义词和同音异形异义词,如high和low,right和left。 通过这些方法...

Global site tag (gtag.js) - Google Analytics