什么是标签(Tags)?
tags是一种标签,是一种新的信息组织形式,和分类类似,但是远比分类灵活,是对文章中关键信息的标记,是随着blog的兴起而流行起来的tag被广泛的应用在web2.0类的网站里。
简单的说,tags可以看出文章的关键词。
Python中extract_tags()怎么对多行文本提取特征词而不是一行一行计算
[python] view plain copy
#coding:utf-8
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
from multiprocessing import Pool,Queue,Process
import multiprocessing as mp
import time,random
import os
import codecs
import jieba.analyse
jieba.analyse.set_stop_words("yy_stop_words.txt")
def extract_keyword(input_string):
#print("Do task by process {proc}".format(proc=os.getpid()))
tags = jieba.analyse.extract_tags(input_string, topK=100)
#print("key words:{kw}".format(kw=" ".join(tags)))
return tags
#def parallel_extract_keyword(input_string,out_file):
def parallel_extract_keyword(input_string):
#print("Do task by process {proc}".format(proc=os.getpid()))
tags = jieba.analyse.extract_tags(input_string, topK=100)
#time.sleep(random.random())
#print("key words:{kw}".format(kw=" ".join(tags)))
#o_f = open(out_file,'w')
#o_f.write(" ".join(tags)+"\n")
return tags
if __name__ == "__main__":
data_file = sys.argv[1]
with codecs.open(data_file) as f:
lines = f.readlines()
f.close()
out_put = data_file.split('.')[0] +"_tags.txt"
t0 = time.time()
for line in lines:
parallel_extract_keyword(line)
#parallel_extract_keyword(line,out_put)
#extract_keyword(line)
print("串行处理花费时间{t}".format(t=time.time()-t0))
pool = Pool(processes=int(mp.cpu_count()*0.7))
t1 = time.time()
#for line in lines:
#pool.apply_async(parallel_extract_keyword,(line,out_put))
#保存处理的结果,可以方便输出到文件
res = pool.map(parallel_extract_keyword,lines)
#print("Print keywords:")
#for tag in res:
#print(" ".join(tag))
pool.close()
pool.join()
print("并行处理花费时间{t}s".format(t=time.time()-t1))
运行:
python data_process_by_multiprocess.py message.txt
message.txt是每行是一个文档,共581行,7M的数据
运行时间:
不使用sleep来挂起进程,也就是把time.sleep(random.random())注释掉,运行可以大大节省时间。
如何进行标签(TAGS)搜索?
1、Tag总的来说是一种分类系统,有人把他称为大众分类(Folksonomy)。但是tag又不同于一般的目录结构的分类方法,首先tag能以较少的代价细化分类,想像一下,一篇涉及面比较广的文章,比如一篇谈论20世纪以来物理学的成就的文章,可能会涉及到相对论、量子力学、黑洞理论、大爆炸宇宙理论,可能涉及到爱因斯坦、普朗克等科学家,甚至可能涉及到诺贝尔奖。如果你用目录结构的分类方法的话,根本不可能按这篇文章涉及到的各个方面来分类,因为要细化分类,将使整个目录结构异常庞大,更加不利于资料的组织以及查找。而tag则不同,他可以自由地不考虑目录结构的给文章进行分类,各个tag之间的关系是一种平行的关系,但是又可以根据相关性分析,将经常一起出现的tag关联起来,而产生一种相关性的分类。
2、Tag也可以说是一种关键词标记,利于搜索查找。但是tag也不同于一般的关键词,用关键词进行搜索时,只能搜索到文章里面提到了的关键词,但tag却可以将文章中根本没有的关键词做为tag来标记,比如上面那篇文章,我可以标记为“资料”或者“历史”,当然更多的时候是标记为“物理”,不过,我如果标记上“资料”的tag,则可以将所有资料性的文章全部关联起来,便于查找。
参考:真·踏网无痕
那么,什么是Tags?很简单,往下看;
·经典的信息构成模式;
在传统的网页组成中,我们通常使用Taxonomy(分类法)来归纳、整理和存放我们的信息,图书馆是一个绝好的例子,所有的信息从一个点开始,形成树状的分类,由此构成一个完整的、相互联系起来逻辑体系;
这个体系从一开始就是人为分类形成的,在我们需要检索的时候,几乎不需要费多大的劲;
[例子]比如我们的Blog,首先有一个主标题,然后下分若干分类,实际的文章则分类储存在这些不同的分类中;在一般情况下,我们不允许一个文章同时存在于多个分类中,以便于我们管理的方便和检索的唯一性;
在网络上,dmoz和wiki都算是比较典型和知名的例子;
·散秩的信息构成模式;
看似无序的浩渺信息,其中的绝大部分是通过“语言”来描述的,这表明了这些信息的指向性,因此我们通过提取这些语言(文字、文本)的相同部分,以此获得相关的信息;这些信息平时是完全松散、互不联系的,当且仅当我们对其加以提取的时候才呈现相对紧凑的组织结构,即便如此,这个结构和经典的分类结构相比,仍然是足够散秩的。
[例子]你可能已经想到了,Google嘛。目前绝大部分的搜索引擎所依赖的正是这一点,因此对于分词的研究是这些搜索引擎始终的重点和痛苦,其他的不说,仅仅逻辑实证主义和日常语言学派这两个当代的流派就足够他们折腾到下个世纪去了。
举一个恶搞点的例子:当我说:“他妈”的时候,仅仅检索关键字而并不关心其在日常语言中实际运用的搜索引擎怎么知道我是在骂人还是在陈诉一个归属性事实呢?更何况我们经常面对google上数万和关键字原本语义要求完全不同的搜索结果长声叹息。
[简介]
逻辑实证主义:认为人类的日常语言充满的谬误,需要彻底厘平,重构一个像数学一样完美的逻辑语言体系;
日常语言学派:认为人类的日常语言是非常合理而符合现实的,“完美”的逻辑语言并不存在而且也不符合现实;唯一的问题在于人们使用日常语言的时候出了一些方法上的问题,这需要我们加以重视和研究。
(后者正是我倾向赞同的结论)
·符合未来发展的信息构成模式;
现在我们综合起来考察以上两种在我们日常生活中显得日益重要的信息构成模式,会发现他们各有优点和缺陷;
对于前者而言,语言所表达和内涵的思想是广博的,构造简单的分类逻辑无法诠释和标识某一篇文章所设计的全部重点,复杂的分类则将陷入无限微观的悖论逻辑;
对于后者而言,除开分词的烦恼,Google们也许还希望承天下之大义担负起教导每一个人重修日常语言学分的重任,并且要求每一个人都能达到维特根斯坦的高度。
路德维奇·维特根斯坦?对了,这终于回到我们的重点。
维特根斯坦本人正是逻辑实证主义和日常语言学派先后的奠基人,而在他的后期的日常语言思想中,他提出了一个大家相对比较熟悉的观点:家族相似。
以下引用一段话作大致的解释:
维特根施坦从“反本质主义”立场出发反对语词的定义化。本质主义者认为同一类事物之所以成为该类事物,是由于它们具有共同的本质(共相),定义就是规定事物的这种本质。维特根施坦则认为事物根本没有共同的本质,只有“家族相似”。所谓“家族相似”不是共同的相似,而是这一方面或那一方面的不完全相似。例如一个家族中的成员之间有的眼睛相似,有的神态相似,有的脸庞相似。因此,维特根施坦坚持一种唯名论的立场,认为人们在日常生活中使用一般性的名词概念只是为了方便,本质、共相那种形而上学的东西是不存在的。误把这些东西当作存在,就会染上“哲学病”。
好吧,看出来了吗?那些相似的地方就是Tags(标签);上面引用中处处提到本质、反本质、家族相似,我们处处可以当作分类、碎片和标签来阅读和理解。
家族相似(Tags)表明了对传统分类学(Category)的立场,如同日常语言学派对待黑格尔体系的观点,要求瓦解普遍、瓦解大一统、瓦解唯一性等这些经典哲学孜孜以求的目标,代之以碎片式的结构,这些碎片之间的联系,仅仅存在于当人们需要它们的时候。
带有碎片语义色彩,富于哲学战斗力的Tags和检索关键字相对而言,其形成是主动而非被动的,是主动聚合而不是等待被动的检索,其形成的过程经历了人为的筛选,相对而言更符合日常语言的正常使用;例如全世界关于“SMTH”的信息,尽管有些文章通篇都没有写到一个涉及SMTH的字符,但是它所描述的事实确实是与此相关。
如果我们脱离哲学而不论,Tag实际上同时带有传统分类法和搜索关键词这两大信息构成模式的共同特点,同时消除了相当一部分它们在各自方面的缺憾和弱点。
需要指出的是,从现有的应用和理论分析看来,分类、标签和无序关键字有着不同的运用范畴;对于微观的、少量的信息,分类法已经足够我们使用;对于海量的,无边无际的无序信息,关键字也许是现阶段应用最广泛且被普遍接受的组织方式;而在两者之间,一个足够大、有更高系统化要求和精确度要求的信息群而言,Tag也许是最佳的选择。
在Blog中使用Tags?
如果一些人恶意地使用Tag,将使其失去意义,这类似于在mata标签中强行加入无数完全与网页本身无关的keyword这种无聊的举动,以及后来四处散发冗余链接的小p孩;在一个开放型的超人气论坛上使用Tags当然不存在技术问题,但是也许不算是一个好主意,特别是在中国。
相对而言,Blog的主人对自己的log会比较负责,能够认真地筛选发布在自己log上的信息,或者对此作出评论和传播,因此在Blog上结构Tag对信息的有序化是有积极意义的;
但是,对于个人的Blog,Tag的意义微乎其微——因为作为个人发布源的信息容量实在太小;如果Blog需要Tag的话,它必然是针对一个大范围的用户群,有两种比较适合的情况:一种是拥有动则数千数十万用户的多用户Blog站点,另外一种则是基于XML的聚合站点;
不论如何,Tag所针对的都是大信息容量的有序化问题,有利于用户在这些巨大的库存中精确地定位符合语义信息的节点,而并非针对个人Blog信息的有序化问题;
Tags,无序信息、标签和分类法,以上的分析可以算作哲学走在科技之前的一个比较典型的例子,至少纵观国内应用,还没有相关的开发项目;
BXNA的Blog聚合仍然依赖于分类,听说试图进入分词领域,但是这对于BXNA聚合的那点信息而言实在有牛刀屠鸡之嫌;而其他一些Tag服务商并没有对Blog的直接支持;
这么大的蛋糕,谁会吃到呢?作为先锋的技术引领者?Blog程序的提供商?还是资本的所有者呢?个人以为,拥有广泛用户群的聚合服务商或者Blog提供商,抢先发布基于Tag的主动式聚合平台,或者是基于TrackBack的被动式聚合平台,也许在未来,就可以理所当然地成为资本的所有者。
最后,关于Tag具体的开发和管理等技术,不属于本文讨论的范围,请参看相关的其他文章。
Javascript中的document.all.tags()如何使用,求一个简单的小例子。
document.all.tags("input")取到当前所有的input标签.
document.all.tags("input").item(0)就是第一个input标签
document.all.tags("input").item(0).checked第一个标签被选中
function tt(){
aa=document.all.tags("input");
alert(item(0));//aaa;
}
什么是标签(Tags)?
Tag(中文叫做“标签”)
是一种更为灵活、有趣的日志分类方式,您可以为每篇日志添加一个或多个Tag(标签)
当然,您也可以简单地把一个Tag(标签)理解为一个日志分类,但是Tag和分类的不同之处也很明显:
首先,分类是您在写日志之前就定好的,而Tag是在您写完日志之后再添加的;
其次,您可以同时为一篇日志贴上好几个Tag(标签),方便自己随时查找,而原先一篇日志只能有一个分类;
再次,当您积累了一定数量的Tag之后,您可以看看自己在Blog中最经常写的是哪些话题;
最后,您可以看到有哪些人和自己使用了一样的Tag(标签),进而找到和您志趣相投的Blogger。
为什么要用Tags?
Tags是体现Blog社会性的最好方式。
Tags便于搜索引擎和基于Tags的分类软件更好的搜索和分类信息。
Tags是Category的最好补充和扩展。
Tags是一个开放的简易的有效的分类方法,有着广泛的应用前景。
SVN 中trunk、branches、tags都什么意思?
1、trunk是主分支,是日常开发进行的地方。
2、branches是分支。一些阶段性的release版本,这些版本是可以继续进行开发和维护的,则放在branches目录中。又比如为不同用户客制化的版本,也可以放在分支中进行开发。
3、tags目录一般是只读的,这里存储阶段性的发布版本,只是作为一个里程碑的版本进行存档。
扩展资料
在SVN中建立Branch和tag的方法如下:
1.选择Branch和tag.
2.在出来的界面中的ToURL中填上URL,一般是svn://IP/Project/branches/branch-1,这样就建立了一个branch-1的branch.建立tag是一样的操作,只不过URL一般是svn://IP/Project/tags/tag-1
3.后面的Createcopyfrom是用于选择从你当前的workingbase中的哪个版本中建立Branch和tag,可以根据自己的选择来订制,一般选择HeadRevision
参考资料:svn-百度百科 svn中文官网