资源简介

最新Tmsvm基于SVM的文本挖掘系统 包含JAVA和python两个版本

资源截图

代码片段和文件信息

#!/usr/bin/env python

from ctypes import *
from ctypes.util import find_library
import sys
import os

# For unix the prefix ‘lib‘ is not considered.
if find_library(‘linear‘):
liblinear = CDLL(find_library(‘linear‘))
elif find_library(‘liblinear‘):
liblinear = CDLL(find_library(‘liblinear‘))
else:
if sys.platform == ‘win32‘:
liblinear = CDLL(os.path.join(os.path.dirname(__file__)‘./liblinear.dll‘))
else:
liblinear = CDLL(os.path.join(os.path.dirname(__file__)‘./liblinear.so.64‘))

# Construct constants
SOLVER_TYPE = [‘L2R_LR‘ ‘L2R_L2LOSS_SVC_DUAL‘ ‘L2R_L2LOSS_SVC‘ ‘L2R_L1LOSS_SVC_DUAL‘\
‘MCSVM_CS‘ ‘L1R_L2LOSS_SVC‘ ‘L1R_LR‘ ‘L2R_LR_DUAL‘]
for i s in enumerate(SOLVER_TYPE): exec(“%s = %d“ % (s  i))

PRINT_STRING_FUN = CFUNCTYPE(None c_char_p)
def print_null(s): 
return 

def genFields(names types): 
return list(zip(names types))

def fillprototype(f restype argtypes): 
f.restype = restype
f.argtypes = argtypes

class feature_node(Structure):
_names = [“index“ “value“]
_types = [c_int c_double]
_fields_ = genFields(_names _types)

def gen_feature_nodearray(xi feature_max=None issparse=True):
if isinstance(xi dict):
index_range = xi.keys()
elif isinstance(xi (list tuple)):
xi = [0] + xi  # idx should start from 1
index_range = range(1 len(xi))
else:
raise TypeError(‘xi should be a dictionary list or tuple‘)

if feature_max:
assert(isinstance(feature_max int))
index_range = filter(lambda j: j <= feature_max index_range)
if issparse: 
index_range = filter(lambda j:xi[j] != 0 index_range)

index_range = sorted(index_range)
ret = (feature_node * (len(index_range)+2))()
ret[-1].index = -1 # for bias term
ret[-2].index = -1
for idx j in enumerate(index_range):
ret[idx].index = j
ret[idx].value = xi[j]
max_idx = 0
if index_range : 
max_idx = index_range[-1]
return ret max_idx

class problem(Structure):
_names = [“l“ “n“ “y“ “x“ “bias“]
_types = [c_int c_int POINTER(c_int) POINTER(POINTER(feature_node)) c_double]
_fields_ = genFields(_names _types)

def __init__(self y x bias = -1):
if len(y) != len(x) :
raise ValueError(“len(y) != len(x)“)
self.l = l = len(y)
self.bias = -1

max_idx = 0
x_space = self.x_space = []
for i xi in enumerate(x):
tmp_xi tmp_idx = gen_feature_nodearray(xi)
x_space += [tmp_xi]
max_idx = max(max_idx tmp_idx)
self.n = max_idx

self.y = (c_int * l)()
for i yi in enumerate(y): self.y[i] = y[i]

self.x = (POINTER(feature_node) * l)() 
for i xi in enumerate(self.x_space): self.x[i] = xi

self.set_bias(bias)

def set_bias(self bias):
if self.bias == bias:
return 
if bias >= 0 and self.bias < 0: 
self.n += 1
node = feature_node(self.n bias)
if bias < 0 and self.bias >= 0: 
self.n -= 1
node = feature_node(-1 bias)

for xi in self.x_space:
xi[-2] = node
self.bias = bias


class parameter(Structure):
_names = [“solver_type“ “eps“ “C“ “nr_weight“ “weight_label“ “weight“]

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     605537  2012-03-08 21:31  Tmsvm参考文档(v1.2.0).pdf

     文件     651921  2011-11-22 19:05  tmsvm简介(v1.2.0).pdf

     文件       5514  2012-09-21 10:17  data\Testdata.txt

     文件       5514  2012-09-21 10:17  data\Traindata.txt

     文件       4598  2012-09-21 10:21  data\Traindata_noseg.txt

     文件       1764  2012-04-24 20:19  dependence\.svn\all-wcprops

     文件       3004  2012-04-24 20:19  dependence\.svn\entries

     文件         53  2011-11-10 14:29  dependence\.svn\prop-base\liblinear.dll.svn-base

     文件         53  2011-11-18 13:55  dependence\.svn\prop-base\liblinear.so.32.svn-base

     文件         53  2011-11-18 13:55  dependence\.svn\prop-base\liblinear.so.64.svn-base

     文件         53  2011-11-09 16:47  dependence\.svn\prop-base\libsvm.dll.svn-base

     文件         53  2011-11-18 13:55  dependence\.svn\prop-base\libsvm.so.32.svn-base

     文件         53  2011-11-18 13:55  dependence\.svn\prop-base\libsvm.so.64.svn-base

     文件         53  2011-11-09 16:47  dependence\.svn\prop-base\mmseg.dll.svn-base

     文件         53  2011-11-18 13:55  dependence\.svn\prop-base\mmseg.so.32.svn-base

     文件         53  2011-11-18 13:55  dependence\.svn\prop-base\mmseg.so.64.svn-base

     文件      80325  2011-11-10 13:51  dependence\.svn\text-base\chars.dic.svn-base

     文件     130560  2011-11-10 14:30  dependence\.svn\text-base\liblinear.dll.svn-base

     文件       7640  2011-12-01 19:11  dependence\.svn\text-base\liblinear.py.svn-base

     文件      48680  2011-11-18 13:55  dependence\.svn\text-base\liblinear.so.32.svn-base

     文件      56138  2011-11-18 13:55  dependence\.svn\text-base\liblinear.so.64.svn-base

     文件       8338  2011-11-10 18:59  dependence\.svn\text-base\liblinearutil.py.svn-base

     文件     140288  2011-11-10 13:51  dependence\.svn\text-base\libsvm.dll.svn-base

     文件      62281  2011-11-18 13:55  dependence\.svn\text-base\libsvm.so.32.svn-base

     文件      68105  2011-11-18 13:55  dependence\.svn\text-base\libsvm.so.64.svn-base

     文件     101376  2011-11-10 13:51  dependence\.svn\text-base\mmseg.dll.svn-base

     文件      22007  2011-11-18 13:55  dependence\.svn\text-base\mmseg.so.32.svn-base

     文件      26862  2011-11-18 13:55  dependence\.svn\text-base\mmseg.so.64.svn-base

     文件       8289  2012-01-14 10:51  dependence\.svn\text-base\porter2.py.svn-base

     文件       4138  2011-12-01 19:11  dependence\.svn\text-base\pymmseg.py.svn-base

............此处省略246个文件信息

评论

共有 条评论