当前位置:  编程技术>软件工程/软件设计
本页文章导读:
    ▪条件随机场(CRF -- Conditional Random Fields)的C++开源库收集      http://flexcrfs.sourceforge.net/ FlexCRFs: Flexible Conditional Random Fields FlexCRFs is a conditional random field toolkit for segmenting and labeling sequence data written in C/C++ using STL library. It was implemented based on the theoret.........
    ▪Spring MVC MultiActionController---多动作控制器       赠人玫瑰,手留余香.人生最大的快乐不在于占有什么而在于追求什么的过程. 引用文章:http://blog.csdn.net/q3498233/article/details/6703101  http://red-apple.blog.163.com/blog/static/20116506120122521556586/ &nb.........
    ▪SVN总结       1,SVN是什么? svn---subversion是目前最流行的一款 项目源代码管理软件. 常用的项目源代码管理软件: 1.cvs 2.svn 3.vss 4.clearcase subversion(简称svn)是近年来崛起的版本管理软件(源码),是cvs的接班人.........

[1]条件随机场(CRF -- Conditional Random Fields)的C++开源库收集
    来源: 互联网  发布时间: 2013-11-19
http://flexcrfs.sourceforge.net/
FlexCRFs: Flexible Conditional Random Fields

FlexCRFs is a conditional random field toolkit for segmenting and labeling sequence data written in C/C++ using STL library. It was implemented based on the theoretic model presented in (Lafferty et al. 2001) and (Sha and Pereira 2003). The toolkit uses L-BFGS (Liu and Nocedal 1989) - an advanced convex optimization procedure - to train CRF models. FlexCRFs was designed to deal with hundreds of thousand data sequences and millions of features. FlexCRFs supports both first-order and second-order Markov CRFs. We have tested FlexCRFs on Linux (Red Hat, Fedora, Ubuntu), Sun Solaris, and MS Windows with MS Visual C++.


PCRFs is a parallel version of FlexCRFs that allows us to train conditional random fields on massively parallel processing systems supporting Message Passing Interface (MPI). PCRFs helps to train conditional random fields on large-scale datasets containing up to millions of data sequences. We have tested PCRFs on large parallel systems, such as Cray XT3, SGI Altix, and IBM SP.


http://crfpp.googlecode.com/svn/trunk/doc/index.html
CRF++: Yet Another CRF toolkit

CRF++ is a simple, customizable, and open source implementation of Conditional Random Fields (CRFs) for segmenting/labeling sequential data. CRF++ is designed for generic purpose and will be applied to a variety of NLP tasks, such as Named Entity Recognition, Information Extraction and Text Chunking.

Last Update: 2013-02-13

Initial Release: 2005-05-28



http://www.chokkan.org/software/crfsuite/

CRFsuite

A fast implementation of Conditional Random Fields (CRFs)
Introduction

CRFsuite is an implementation of Conditional Random Fields (CRFs) [Lafferty 01][Sha 03][Sutton] for labeling sequential data. Among the various implementations of CRFs, this software provides following features.

    Fast training and tagging. The primary mission of this software is to train and use CRF models as fast as possible. See the benchmark result for more information.
    Simple data format for training and tagging. The data format is similar to those used in other machine learning tools; each line consists of a label and attributes (features) of an item, consequtive lines represent a sequence of items (an empty line denotes an end of item sequence). This means that users can design an arbitrary number of features for each item, which is impossible in CRF++.
    State-of-the-art training methods. CRFsuite implements:
        Limited-memory BFGS (L-BFGS) [Nocedal 80]
        Orthant-Wise Limited-memory Quasi-Newton (OWL-QN) method [Andrew 07]
        Stochastic Gradient Descent (SGD) [Shalev-Shwartz 07]
        Averaged Perceptron [Collins 02]
        Passive Aggressive [Crammer 06]
        Adaptive Regularization Of Weight Vector (AROW) [Mejer 10]
    Forward/backward algorithm using the scaling method[Rabiner 90]. The scaling method seems faster than computing the forward/backward scores in logarithm domain.
    Linear-chain (first-order Markov) CRF.
    Performance evaluation on training. CRFsuite can output precision, recall, F1 scores of the model evaluated on test data.
    An efficient file format for storing/accessing CRF models using Constant Quark Database (CQDB). It takes a little time to start up a tagger since a preparation is done only by reading an entire model file to a memory block. Retriving the weight of a feature is also very quick.

    C++/SWIG API. CRFsuite provides an easy-to-use API for C++ language (crfsuite.hpp). CRFsuite also provides the SWIG interface for various languages (e.g., Python) on top of the C++ API. See the API Documentation for more information.

Last Update: 2011-08-11


Wapiti - A simple and fast discriminative sequence labelling toolkit http://wapiti.limsi.fr/

Wapiti is a very fast toolkit for segmenting and labeling sequences with discriminative models. It is based on maxent models, maximum entropy Markov models and linear-chain CRF and proposes various optimization and regularization methods to improve both the computational complexity and the prediction performance of standard models. Wapiti is ranked first on the sequence tagging task for more than a year on MLcomp web site.


HCRF library (including CRF and LDCRF)

http://hcrf.sourceforge.net/


其他开发语言:

Java:

CRF Project

http://crf.sourceforge.net/

MALLET

http://mallet.cs.umass.edu/

Python

http://leon.bottou.org/projects/sgd






作者:anshan1984 发表于2013-4-23 21:41:27 原文链接
阅读:23 评论:0 查看评论

    
[2]Spring MVC MultiActionController---多动作控制器
    来源: 互联网  发布时间: 2013-11-19

赠人玫瑰,手留余香.人生最大的快乐不在于占有什么而在于追求什么的过程.

引用文章:http://blog.csdn.net/q3498233/article/details/6703101

 http://red-apple.blog.163.com/blog/static/20116506120122521556586/

  http://www.blogjava.net/liaojiyong/archive/2006/09/01/67078.html

http://www.open-open.com/lib/view/open1346746861365.html http://esffor.iteye.com/blog/96082          

在使用Spring提供的控制器时,AbstractController和SimpleFormController是应用得最多的。

  • AbstractController是最基本的Controller,可以给予用户最大的灵活性。
  • SimpleFormController则用于典型的表单编辑和提交。

在一个需要增、删、改、查的需求中,增加和修改扩展SimpleFormController完成,删除和查询则扩展AbstractController完成。 但是像上面那样完成某一业务对象的增,删,改,查,都属于一类相关的业务。把一类相关的操作分布到不同的类去完成,违返“高内聚”的设计原则。这样四个业务操作需要四个类来完成,造成太多的类文件,难以维护和配置。 所以Spring借鉴Struts的DispatchAction提供了类似功能的MultiActionController。可以实现不同的请求路径对应MultiActionController中的不同方法,这样就可以把相关的操作都在一个类的相关方法中完成。这样使得这个类具有“高内聚”,也利于系统的维护,还避免了重复代码。

多动作控制器存在在一个单独的包中——org.springframework.web.mvc.multiaction——它能够将请求映射到方法名,然后调用正确的方法。比如当你在一个控制器中有很多公共的功能,但是想多个入口到控制器使用不同的行为,使用多动作控制器就特别方便。


MultiActionController 提供的功能

功能 解释 delegate MultiActionController有两种使用方式。第一种是继承MultiActionController,并在子类中指定由MethodNameResolver解析的方法(这种情况下不需要这个配置参数),第二种是你定义了一个代理对象,由它调用Resolver解析的方法。如果你是这种情况,你必须使用这个配置参数定义代理对象 methodNameResolver 由于某种原因,MultiActionController需要基于收到的请求解析它必须调用的方法。你可以使用这个配置参数定义一个解析器


一个多动作控制器的方法需要符合下列格式:

1:// actionName can be replaced by any methodname  

ModelAndView actionName(HttpServletRequest, HttpServletResponse);
由于MultiActionController不能判断方法重载(overloading),所以方法重载是不允许的。此外,你可以定义exception handlers,它能够处理从你指定的方法中抛出的异常。包含异常处理的动作方法需要返回一个ModelAndView对象,就象其它动作方法一样,并符合下面的格式:


2:// anyMeaningfulName can be replaced by any methodname  

ModelAndView anyMeaningfulName(HttpServletRequest, HttpServletResponse, ExceptionClass);
ExceptionClass可以是任何异常,只要它是java.lang.Exception或java.lang.RuntimeException的子类。


MethodNameResolver 根据收到的请求解析方法名。有三种解析器可以供你选择,当然你可以自己实现解析器。

  • ParameterMethodNameResolver - 解析请求参数,并将它作为方法(http://www.sf.net/index.view?testParam=testIt的请求就会调用testIt(HttpServletRequest,HttpServletResponse))。使用paramName配置参数可以调整所检查的参数
  • InternalPathMethodNameResolver - 从路径中获取文件名作为方法名(http://www.sf.net/testing.view的请求会调用testing(HttpServletRequest, HttpServletResponse)方法)
  • PropertiesMethodNameResolver - 使用用户定义的属性对象将请求的URL映射到方法名。当属性定义/index/welcome.html=doIt,并且收到/index/welcome.html的请求,就调用doIt(HttpServletRequest, HttpServletResponse)方法。这个方法名解析器需要使用PathMatcher 所以如果属性包含/**/welcom?.html,该方法也会被调用!
  • 废话不多说,上demo1:
    首先是一个使用ParameterMethodNameResolver和继承MultiActionController的例子,它接受包含参数名的请求。

     Cntroller:MutiController.java
    package com.sunshine.controller;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
    
    import com.sunshine.service.UserService;
    
    public class MutiController extends MultiActionController {
    
    	private UserService userService;
    
    	public void setUserService(UserService userService) {
    		this.userService = userService;
    	}
    
    	public String add(HttpServletRequest request,HttpServletResponse response){
    		
    		System.out.println("MutiController.add()");;
    		request.setAttribute("add", "add");
    		
    		return "add";
    	}
    	
    	public String delete(HttpServletRequest request,HttpServletResponse response){
    		
    		System.out.println("MutiController.delete()");;
    		request.setAttribute("delete", "delete");
    		
    		return "delete";
    	}
    	
    }
    


    springmvc-servlet.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"      
        
    [3]SVN总结
        来源: 互联网  发布时间: 2013-11-19

    1,SVN是什么?

    svn---subversion是目前最流行的一款 项目源代码管理软件.
    常用的项目源代码管理软件:
    1.cvs
    2.svn
    3.vss
    4.clearcase
    subversion(简称svn)是近年来崛起的版本管理软件(源码),是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。svn服务器有2种运行方式:独立服务器和借助apache。
    svn:// http://
    svn最流行的客户端是tortoisesvn 。


    2,为什么会有SVN?

    1,回溯的问题
    2,多人协同开发的整合
    3,如何解决文件合并问题?
    3,SVN的基本原理

    4,SVN软件的下载和安装

    服务器端软件(subversion)
    http://subversion.apache.org/packages.html
    客户端软件(tortoisessvn)
    http://tortoisesvn.net/downloads
    5,SVN的基本使用

    在一台服务器上建立一个源代码库(仓库),库里可以存放许多不同项目的源程序(仓库)。由源代码库管理员统一管理这些源程序(仓库)。每个用户在使用源代码库之前,首先要把源代码库里的项目文件(仓库)下载(checkout)到本地,然后用户可以在本地任意修改,最后用svn命令进行提交(commit),由svn源代码库统一管理修改。这样,就好像只有一个人在修改文件一样,既避免了冲突,又可以做到跟踪文件变化等。

    需求:
    两个程序员,小白(项目经理)和小黑(程序员),一起开发一个微博项目.
    让小白在服务器创建一个仓库,一定是先创建一个仓库,然后把最原始的项目源码提交到仓库去,让小黑下载(checkout)一份源码并进行开发
    1,先去服务器端创建一个仓库(空目录)
    2,初始化仓库:
    (1)通过指令创建 svnadmin create 仓库路经
    (2)可视化工具初始化
    3,小白把仓库checkout下来
      必须保证svn的仓库是启动(运行)状态
    svnserve -d -r 仓库路径
    进入项目名----右击鼠标----浏览仓库---右击---checkout
    4,修改/创建文件后,提交到服务器端去
    右击---add(svn客户端管理)---commit(提交到服务器端)


    6,SVN的单仓库和多仓库

    启动形式:单仓库,指定到仓库的具体位置;多仓库,将仓库的位置指定到repository


    7,SVN解决冲突/合并&常出现字符&SVN的使用细节

    1,如何使用svn来解决,文件被多人修改后的合并(冲突问题)
    2,先模拟冲突情景:
    小白是项目经理,创建项目weibo的最初源代码,小黑修改文件后,出现冲突:
    步骤:
    (1)先在服务器创建仓库(sns),修改仓库的访问权限
    (2)小白从服务器checkout一份sns项目,提交并修改文件
    (3)小黑也checkout一份文件并修改,SVN用户权限管理和配置

    1,画图分析为什么会出现冲突
    2,出现冲突怎么处理?
    (1)程序员自己合并代码,先update一下,出现很多备份文件
    这个时候小黑的还是原来的,需要更新一下
    (2)谁合并的,能通过日志查看出来
    (3)把多余的文件删除掉,再committ
    (4)小黑想获得的话,也得update一下才能看到更新后的文件
    (1)+ 号:该文件已经被SVN客户端管理,但是还没有提交到svn服务器去
    (2)绿色的钩钩表示,文件已经成功提交到服务器端
    (3)红色!号表示,本地有某个文件没有提交到服务器端(即没有完全同步)
    (4)黄色感叹号,表示提交的过程中出现冲突
    (5)红色表示此文件在本地修改过,还未提交到仓库

    (1)版本回溯 右击鼠标---update to reversion;
    (2)日志记录,提交日志限定必填
    右键---properties----new----logminisize
    (3)误删除文件的恢复操作
    update即可
    (4)过滤某个或某些文件
       addto ignore list remove
    (5)导出项目
    export


    9,SVN开机自启动批处理文件

    需求:
    有3个用户,admin,xiaomao,xiaogou
    要求admin有读写的权限,
    xiaomao xiaogou有读的权限,没有写的权限
    其他用户什么权限都没有步骤:
    1,先修改 svnserve.conf
    anon-access = none; 表示匿名用户什么权限都没有
    auth-access = write;表示授权用户最高权限是write
    password-db = passwd 密码文件在passwd
    2,修改passwd文件
    配置3个用户的密码
    3,用户组的配置
    authz-db = authz

    安装服务:svn-install.bat
    @echo off
    sc create MYSVN binPath= "E:/svnserver/server/bin/svnserve.exe -r E:/svnserver/myrepository --service" start= auto
    net start MYSVN
    @pause

    卸载服务:svn-remove.bat
    @echo off
    net stop MYSVN
    sc delete MYSVN
    @pause


    10,SVN和zend studio的整合


    从SVN导出数据到zend studio,zend studio作为客户端
    右击---import---project from svn---下一步
    (2)提交 项目到SVN:
    右击---team---


    作者:Jye13 发表于2013-4-24 7:44:12 原文链接
    阅读:0 评论:0 查看评论

        
    最新技术文章:
    ▪主-主数据库系统架构    ▪java.lang.UnsupportedClassVersionError: Bad version number i...    ▪eclipse项目出现红色叉叉解决方案
    ▪Play!framework 项目部署到Tomcat    ▪dedecms如何做中英文网站?    ▪Spring Batch Framework– introduction chapter(上)
    ▪第三章 AOP 基于@AspectJ的AOP    ▪基于插件的服务集成方式    ▪Online Coding开发模式 (通过在线配置实现一个表...
    ▪观察者模式(Observer)    ▪工厂模式 - 程序实现(java)    ▪几种web并行化编程实现
    ▪机器学习理论与实战(二)决策树    ▪Hibernate(四)——全面解析一对多关联映射    ▪我所理解的设计模式(C++实现)——解释器模...
    ▪利用规则引擎打造轻量级的面向服务编程模式...    ▪google blink的设计计划: Out-of-Progress iframes    ▪FS SIP呼叫的消息线程和状态机线程
    ▪XML FREESWITCH APPLICATION 实现    ▪Drupal 实战    ▪Blink: Chromium的新渲染引擎
    ▪(十四)桥接模式详解(都市异能版)    ▪你不知道的Eclipse用法:使用Allocation tracker跟...    ▪Linux内核-进程
    ▪你不知道的Eclipse用法:使用Metrics 测量复杂度    ▪IT行业为什么没有进度    ▪Exchange Server 2010/2013三种不同的故障转移
    ▪第二章 IoC Spring自动扫描和管理Bean    ▪CMMI简介    ▪目标检测(Object Detection)原理与实现(六)
    ▪值班总结(1)——探讨sql语句的执行机制    ▪第二章 IoC Annotation注入    ▪CentOS 6.4下安装Vagrant
    ▪Java NIO框架Netty1简单发送接受    ▪漫画研发之八:会吃的孩子有奶吃    ▪比较ASP和ASP.NET
    ▪SPRING中的CONTEXTLOADERLISTENER    ▪在Nginx下对网站进行密码保护    ▪Hibernate从入门到精通(五)一对一单向关联映...
    ▪.NET领域驱动设计—初尝(三:穿过迷雾走向光...    ▪linux下的块设备驱动(一)    ▪Modem项目工作总结
    ▪工作流--JBPM简介及开发环境搭建    ▪工作流--JBPM核心服务及表结构    ▪Eclipse:使用JDepend 进行依赖项检查
    ▪windows下用putty上传文件到远程Linux方法    ▪iBatis和Hibernate的5点区别    ▪基于学习的Indexing算法
    ▪设计模式11---设计模式之中介者模式(Mediator...    ▪带你走进EJB--JMS编程模型    ▪从抽象谈起(二):观察者模式与回调
    ▪设计模式09---设计模式之生成器模式(Builder)也...    ▪svn_resin_持续优化中    ▪Bitmap recycle方法与制作Bitmap的内存缓存
    ▪Hibernate从入门到精通(四)基本映射    ▪设计模式10---设计模式之原型模式(Prototype)    ▪Dreamer 3.0 支持json、xml、文件上传
    ▪Eclipse:使用PMD预先检测错误    ▪Jspx.net Framework 5.1 发布    ▪从抽象谈起(一):工厂模式与策略模式
    ▪Eclipse:使用CheckStyle实施编码标准    ▪【论文阅读】《Chain Replication for Supporting High T...    ▪Struts2 Path_路径问题
    ▪spring 配置文件详解    ▪Struts2第一个工程helloStruts极其基本配置    ▪Python学习入门基础教程(learning Python)--2 Python简...
    ▪maven springmvc环境配置    ▪基于SCRUM的金融软件开发项目    ▪software quality assurance 常见问题收录
    ▪Redis集群明细文档    ▪Dreamer 框架 比Struts2 更加灵活    ▪Maven POM入门
    ▪git 分支篇-----不断更新中    ▪Oracle非主键自增长    ▪php设计模式——UML类图
    ▪Matlab,Visio等生成的图片的字体嵌入问题解决...    ▪用Darwin和live555实现的直播框架    ▪学习ORM框架—hibernate(二):由hibernate接口谈...
    ▪(十)装饰器模式详解(与IO不解的情缘)    ▪无锁编程:最简单例子    ▪【虚拟化实战】网络设计之四Teaming
    ▪OSGi:生命周期层    ▪Javascript/Jquery——简单定时器    ▪java代码 发送GET、POST请求
    ▪Entity Framework底层操作封装(3)    ▪HttpClient 发送GET、POST请求    ▪使用spring框架,应用启动时,加载数据
    ▪Linux下Apache网站目录读写权限的设置    ▪单键模式的C++描述    ▪学习ORM框架—hibernate(一):初识hibernate
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3