`

Python SuffixTree (后缀树)中文 AutoComplete 算法

阅读更多

最近javaeye的python板块实在是太不活跃了,发一个有意思的开源程序,给大家玩玩,这个程序代码是后缀树,一般用于autoComplete,还不知到的同学赶紧来看看吧 :)
开源地址:https://github.com/edisonlz/suffixTree_ch



o SuffixTree.SuffixTree -- The suffix tree structure.  This is a
  thin wrapper around strmat's stree data structure.  This isn't a
  complete wrapper yet; I need to find some time to complete this.
  The wrapper appears to be good enough for simple stuff.

  Methods of SuffixTree:

      o SuffixTree(alphabet=STREE_ASCII)

          Construct a new SuffixTree.  By default, the alphabet
          used by the SuffixTree is ASCII.  Other choices include
          STREE_DNA, STREE_RNA, and STREE_PROTEIN.

      o add(string, id)

          Adds a string to the suffix tree with an id.

      o root()

          Returns the root() SuffixNode of the tree.

      o num_nodes():

          Returns the total number of nodes held in the tree.

      o match(string)

          Given a string, traverse the suffix tree and return a
          3-tuple (match_length, suffix_node, endpos)



o SuffixTree.SuffixNode  (I need to fix the documentation here)

    Methods of 
    num_children()
    find_child(char ch)
    children()
    next()
    parent()
    suffix_link()
    edgelen()
    edgestr()
    getch()
    labellen()
    labelstr()
    ident()
    num_leaves()
    leaf(int leafnum)



o SuffixTree.SubstringDict -- An application of suffix trees toward
  substring matching.  An example might help:

  >>> #coding=utf-8
  >>> from SuffixTree import SubstringDict


  >>> sd = SubstringDict()
  >>> sd.__setitem__("我是python程序员",1)
  >>> sd.__setitem__("我是ruby程序员",2)
  >>> sd.__setitem__("我是javascript程序员",3)
  >>> sd.__setitem__("我是android程序员",4)
  >>> sd.__setitem__("我还是DBA",4)
  >>> print sd[“我是”]
  >>> print sd[“我还是”]



  >>> sd = SubstringDict()
  >>> sd["我是python程序员"] = 1
  >>> sd["我是ruby程序员"] = 2
  >>> sd["我是javascript程序员"] = 3
  >>> sd["我是android程序员"] = 4
  >>> sd["我还是DBA"] = 5
  >>> print sd[“我还是”]


  SubstringDict provides a mapping that allows for substrings of
  keys.  The keys do need to be strings though.

  支持中文的方式是使用 base64,数据量回增加30%,对性能回有些损耗,但是,损耗不大

  64 位 安装 :
  ARCHFLAGS="-arch i386 -arch x86_64" python setup.py installPython SuffixTree (后缀树)中文
分享到:
评论

相关推荐

    Python库 | wagtail_autocomplete-0.1.1-py3-none-any.whl

    资源分类:Python库 所属语言:Python 资源全名:wagtail_autocomplete-0.1.1-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    autocomplete汉字与拼音的双重查询

    它通常基于一种叫做Trie(字典树)的数据结构,或者是更高效的后缀树或AC自动机。当用户输入每个字符时,系统会在预先构建的词库中查找以这些字符开头的所有可能的词汇,然后把这些词汇展示给用户作为补全选项。在...

    Python库 | autocomplete_trie-0.1.tar.gz

    本文将深入探讨“autocomplete_trie-0.1.tar.gz”这个Python库,它是一个专为实现自动补全功能的字典树结构。 标题中的“Python库 | autocomplete_trie-0.1.tar.gz”揭示了我们要讨论的主题是一个名为...

    PyPI 官网下载 | labml_python_autocomplete-0.0.7.tar.gz

    《PyPI官网下载:labml_python_autocomplete-0.0.7.tar.gz——探索Python库的自动化补全功能》 PyPI(Python Package Index)是Python开发者的重要资源库,它为全球的Python开发者提供了海量的第三方库,方便大家在...

    Autocomplete

    Autocomplete

    jquery autocomplete中文文档

    jquery-autocomplete搜索框自动完成的中文文档,上手快,轻便,功能强大

    自动补全 autocomplete 例子 支持中文 数据库

    对于支持中文,我们需要处理的是汉字字符集,这与英文字符处理有所不同。在C#或PHP中,可以使用Unicode编码来处理中文字符,确保程序能够正确识别和处理中文。 在C#中,可以利用`System.Windows.Forms....

    autocomplete-plus-python-jedi:适用于Python的Atom.io Autocomplete-Plus提供程序

    《Python自动补全工具:autocomplete-plus-python-jedi与Atom.io集成》 在现代软件开发中,代码编辑器的智能提示和自动补全功能是提高效率的关键要素之一。Atom.io是一款广受欢迎的开源文本编辑器,它支持丰富的...

    java实现jquery.autocomplete自动搜索含中文

    用java实现autocomplete搜索功能,可以获取除输入框的其它动态参数,后台字符串拼接,返回json数据,格式如下: { query:'Li', suggestions:['Liberia', 'Libyan Arab Jamahiriya', 'Liechtenstein', 'Lithuania'...

    jquery autocomplete下载.rar

    《jQuery Autocomplete 全面解析》 jQuery Autocomplete 是一个非常实用的插件,它为网页表单输入框提供了自动补全功能,极大地提升了用户体验。这个压缩包“jquery autocomplete下载.rar”包含了实现这一功能所需...

    jQuery.Autocomplete 中文支持.pdf

    《jQuery.Autocomplete 中文支持》 jQuery.Autocomplete 是一款广泛使用的 jQuery 插件,它为网页中的输入框提供了自动完成(autocomplete)和建议提示(input suggest)功能。这款插件通过 AJAX 方式动态加载数据...

    python_autocomplete:用于python自动完成的简单神经网络

    我们开始研究玩具项目,以了解简单的LSTM模型可以很好地自动完成python代码。 通过在大多数文件中节省30%以上的击键,而在某些文件中节省近50%的击键,可以提供相当不错的结果。 我们通过做出一个(最佳)预测...

    jquery-ui-autocomplete

    - 搜索算法优化:对于大量的数据源,可以考虑使用模糊匹配算法,如Levenshtein距离或Trie树结构,提高搜索效率。 - 响应式设计:确保Autocomplete在不同设备和屏幕尺寸上都能良好运行,可能需要调整布局和提示框的...

    BootStrap-autocomplete模糊匹配,自动填充

    总的来说,掌握Bootstrap Autocomplete涉及的知识点包括前端基础、Bootstrap框架、jQuery操作、数据处理、模糊查询算法、事件监听、样式定制、响应式设计、性能优化以及测试方法。这些知识点的综合运用,将帮助...

    jquery autocomplete

    **jQuery Autocomplete 知识详解** jQuery Autocomplete 是一个非常流行的 jQuery 插件,它为输入框提供了自动补全的功能,极大地提升了用户在网站上的交互体验。这个插件源自于 jQuery UI 库,但也可以单独使用。...

    jquery自动完成autocomplete,兼容各浏览器,支持中文

    此外,对于中文排序和匹配,可能需要自定义匹配算法,以确保中文字符的正确比较。 ### 4. 结合JSON数据源 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析...

    AutoComplete,字串自動完成

    在IT行业中,实现自动完成功能通常涉及数据结构(如字典树、Trie树、AC自动机等)和算法(如动态规划、前缀匹配等)。 描述中提到了一个博客链接,虽然具体内容未给出,但可以推测该博客可能详细讨论了如何实现一个...

    autocomplete.rar

    如果是源代码,它可能用C++, JavaScript, Python或其他编程语言编写,用于实现自动补全算法。如果是配置文件夹,里面可能包含设置参数,用于定制自动补全的行为,比如触发补全的字符数、候选结果的数量等。 自动...

    layui自动填充插件autocomplete.rar

    在layui中,"autocomplete"是一款自动填充插件,常用于输入框,提供智能提示功能,提高用户输入效率。这款插件适用于各种需要自动补全场景,如搜索框、表单填写等。 在layui的autocomplete插件中,主要涉及以下知识...

Global site tag (gtag.js) - Google Analytics