UML/模型工具textX、Gensim、game-excutor、Graph.Editor介绍

以下为你介绍的UML/模型工具都可用在Linux系统上:textX(Python DSL 与解析器)、Gensim(主题模型 Python 工具包)、game-excutor(模型自动缓存、循环调度)、Graph.Editor(拓补图编辑器)。

1、textX(Python DSL 与解析器)

UML/模型工具textX、Gensim、game-excutor、Graph.Editor介绍

textX是Python中特定于域的语言(DSL)规范的元语言(即定义语言的语言)。

简而言之,textX将帮助您轻松构建文本语言。您可以创建自己的语言或构建对现有文本语言或文件格式的支持。

从单个语法描述中,textX自动构建元模型(以Python类的形式)和语言的解析器。解析器将解析您的语言表达式,并自动构建对应于元模型的Python对象(即模型)的图形。

textX的灵感来自Xtext:一种基于Java的语言工作台,用于在Eclipse平台上构建具有完整工具支持(编辑器,调试器等)的DSL。如果您喜欢Java和Eclipse,请检查一下。 这是一个很棒的工具。

下载地址:https://github.com/textX/textX

2、Gensim(主题模型 Python 工具包)

Gensim是一个相当专业的主题模型Python工具包。在文本处理中,比如商品评论挖掘,有时需要了解每个评论分别和商品的描述之间的相似度,以此衡量评论的客观性。评论和商品描述的相似度越高,说明评论的用语比较官方,不带太多感情色彩,比较注重描述商品的属性和特性,角度更客观。gensim就是  Python 里面计算文本相似度的程序包。

示例代码:

UML/模型工具textX、Gensim、game-excutor、Graph.Editor介绍

针对商品评论和商品描述之间的相似度,怎么使用gensim来计算?

原理:

1]、文本相似度计算的需求始于搜索引擎。

搜索引擎需要计算“用户查询”和爬下来的众多”网页“之间的相似度,从而把最相似的排在最前返回给用户。

2]、主要使用的算法是tf-idf

tf:term frequency词频

idf:inverse document frequency倒文档频率

主要思想是:如果某个词或短语在一篇文章中出现的频率高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。

第一步:把每个网页文本分词,成为词包(bag of words)。

第三步:统计网页(文档)总数M。

第三步:统计第一个网页词数N,计算第一个网页第一个词在该网页中出现的次数n,再找出该词在所有文档中出现的次数m。则该词的tf-idf 为:n/N * 1/(m/M) (还有其它的归一化公式,这里是最基本最直观的公式)

第四步:重复第三步,计算出一个网页所有词的tf-idf 值。

第五步:重复第四步,计算出所有网页每个词的tf-idf 值。

3]、处理用户查询

第一步:对用户查询进行分词。

第二步:根据网页库(文档)的数据,计算用户查询中每个词的tf-idf 值。

4]、相似度的计算

使用余弦相似度来计算用户查询和每个网页之间的夹角。夹角越小,越相似。

安装命令:

安装gensim的简单方法是:

pip install -U gensim

或者,如果您改为下载并解压缩了tar.gz源程序包,则可以运行:

python setup.py test

python setup.py install

注:当前版本已在Python 2.7、3.5和3.6下进行了测试。Gensim的github存储库与Travis CI挂钩,可对每个提交推送和拉取请求进行自动化测试。gensim 1.0.0中不再支持Python 2.6、3.3和3.4。如果必须使用Python 2.6、3.3或3.4,请安装gensim 0.13.4。gensim 0.10.0中删除了对Python 2.5的支持,如果必须使用Python 2.5,请安装gensim 0.9.1。

下载地址:https://github.com/RaRe-Technologies/gensim

3、game-excutor(模型自动缓存、循环调度)

game-excutor:采用Reactor模式,注册readycreate、readyfinish事件到更新服务UpdateService,通过处理后进行模型缓存,然后将消息转化为 dispatchThread消息分配模型需要的create、update、finish的事件进行单线程循环调度。调度过程使用了系统预置锁模型,来进行多线程唤醒机制,将所有的update循环检测进行多线程调度,多线程更新服务使用future-listener机制,在完成调度后,根据模型状态,如果模型存活重新将消息转化为update 事件注册到dispatchThread消息分配模型进行循环处理。如果模型死亡将消息转化为readyfinish事件注册到更新服务UpdateServic进行销毁。这个系统实现了模型自动缓存,多线程异步循环调度模型更新,自动处理模型死亡事件进行销毁。支持将多个updater绑定到同一个更新线程上,减少线程调度。

异步使用例子:

可参考test下的AsyncEventBusTest。

1].生成eventbus,注册react事件模型

2].生成异步线程服务UpdateExecutorService

3].生成异步分配线程LockSupportDisptachThread

4].生成更新服务UpdateService

5].生成eventbus监听器,注册监听器

6].生成事件,放入UpdateService更新服务

7].进行循环处理

异步绑定更新线程使用例子:

可参考asyncevent下的AsyncEventTest。

1].生成eventbus,注册react事件模型

2].生成异步线程服务UpdateEventExcutorService

3].生成异步分配线程LockSupportEventDisptachThread

4].生成更新服务UpdateService

5].生成eventbus监听器,注册监听器

6].生成事件,放入UpdateService更新服务

7].进行循环处理

同步使用例子:

可参考test下的SynsEventBusTest。

1].生成eventbus,注册react事件模型

2].生成dispatchThread,生成分配线程

3].生成eventbus监听器,注册监听器

4].生成事件,放入eventbus

5].进行循环处理

注:代码最后通过maven部署。

下载地址:https://gitee.com/jwpttcg/game-excutor

4、Graph.Editor(拓补图编辑器)

Graph.Editor是一款基于HTML5技术的拓补图编辑器,采用jquery插件的形式,是Qunee图形组件的扩展项目,旨在提供可供扩展的拓扑图编辑工具,拓扑图展示、编辑、导出、保存等功能,此外本项目也是学习HTML5开发,构建WebAPP项目的参考实例。

注意:本项目内核使用Qunee for HTML5,Qunee本身是一个商业产品,默认仅限本机(localhost)使用,非商业用途可以申请免费授权。

UML/模型工具textX、Gensim、game-excutor、Graph.Editor介绍

UML/模型工具textX、Gensim、game-excutor、Graph.Editor介绍

下载地址:https://github.com/samsha/graph.editor

注明

以上就是UML/模型工具textX、Gensim、game-excutor、Graph.Editor的介绍内容,这些UML/模型工具都能使用在Linux操作系统中。

栏目相关文章