lucene IKAnalyzer 中文分词及索引,简单实例

lucene   IKAnalyzer 中文分词及索引,简单实例
lucene   IKAnalyzer 中文分词及索引,简单实例

https://www.360docs.net/doc/3d13938393.html,/posts/list/344.page

import org.apache.lucene.document.Document;

import org.apache.lucene.document.Field;

import org.apache.lucene.document.DateTools;

import org.apache.lucene.index.IndexWriter;

import org.apache.lucene.queryParser.QueryParser;

import org.apache.lucene.search.Hits;

import org.apache.lucene.search.IndexSearcher;

import org.apache.lucene.search.Query;

import org.apache.lucene.store.Directory;

import org.apache.lucene.store.FSDirectory;

import org.mira.lucene.analysis.IK_CAnalyzer;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.FileReader;

import java.util.Date;

public class Searcher {

private static String INDEX_DIR = Searcher.class.getResource("/").getPath()+"/data/index";//"c:\\luc ene\\index";

private static String DOC_DIR = Searcher.class.getResource("/").getPath();//"c:\\lucene\\doc";

public static void main(String[] args) throws Exception {

String queryString;

queryString = "2aê?";

File indexDir = new File(INDEX_DIR);

File docDir = new File(DOC_DIR);

Date start = new Date();

//±?D??è?¨?÷òy

try {

IndexWriter writer = new IndexWriter(INDEX_DIR, new IK_CAnalyzer(), true);

System.out.println("Indexing to directory '" + INDEX_DIR + "'...");

indexDocs(writer, docDir);

System.out.println("Optimizing...");

writer.optimize();

writer.close();

Date end = new Date();

System.out.println(end.getTime() - start.getTime() + " total milliseconds");

} catch (IOException e) {

System.out.println(" caught a " + e.getClass() +

"\n with message: " + e.getMessage());

}

if (!indexDir.exists() || !indexDir.isDirectory()) {

throw new Exception(indexDir

+ " does not exist or is not a directory.");

}

search(indexDir, queryString);

}

private static void indexDocs(IndexWriter writer, File file) throws IOException {

if (file.canRead()) {

if (file.isDirectory()) {

String[] files = file.list();

if (files != null) {

for (int i = 0; i < files.length; i++) {

indexDocs(writer, new File(file, files[i])); }

}

} else {

System.out.println("adding " + file);

try {

writer.addDocument(getDocument(file));

}

catch (FileNotFoundException fnfe) {

//

}

}

}

}

private static Document getDocument(File f)

throws java.io.FileNotFoundException {

Document doc = new Document();

doc.add(new Field("path", f.getPath(), Field.Store.YES, Field.Index.UN_TOKENIZED));

doc.add(new Field("modified",

DateTools.timeToString(https://www.360docs.net/doc/3d13938393.html,stModified(),

DateTools.Resolution.MINUTE),

Field.Store.YES, Field.Index.UN_TOKENIZED));

doc.add(new Field("contents", new FileReader(f)));

return doc;

}

public static void search(File indexDir, String q) throws Exception {

Directory fsDir = FSDirectory.getDirectory(indexDir);

IndexSearcher is = new IndexSearcher(fsDir);// ¢ù ′ò?a?÷òy Query query = new QueryParser("contents", new IK_CAnalyzer()).parse(q); // ¢ú ·???2é?ˉ

long start = new Date().getTime();

Hits hits = is.search(query);// ¢? ???÷?÷òy

long end = new Date().getTime();

System.err.println("Found " + hits.length() + " document(s) (in "

+ (end - start) + "milliseconds) that matched query" + q + ":");

for (int i = 0; i < hits.length(); i++) {

Document doc = hits.doc(i); // ¢ü μ?μ??¥??μ???μμ

System.out.println("file: " + doc.get("path"));

}

}

}

信息检索实验报告

信息检索课程结业报告 姓 学

信息检索与web搜索 应用背景及概念 信息检索(Information Retrieval)是指信息按一定的方式组织起来,并根据信息用户的需要找出有关的信息的过程和技术。狭义的信息检索就是信息检索过程的后半部分,即从信息集合中找出所需要的信息的过程,也就是我们常说的信息查寻(Information Search 或Information Seek)。 信息检索起源于图书馆的参考咨询和文摘索引工作,从19世纪下半叶首先开始发展,至20世纪40年代,索引和检索成已为图书馆独立的工具和用户服务项目。随着1946年世界上第一台电子计算机问世,计算机技术逐步走进信息检索领域,并与信息检索理论紧密结合起来;脱机批量情报检索系统、联机实时情报检索系统。 信息检索有广义和狭义的之分。广义的信息检索全称为“信息存储与检索”,是指将信息按一定的方式组织和存储起来,并根据用户的需要找出有关信息的过程。狭义的信息检索为“信息存储与检索”的后半部分,通常称为“信息查找”或“信息搜索”,是指从信息集合中找出用户所需要的有关信息的过程。狭义的信息检索包括3个方面的含义:了解用户的信息需求、信息检索的技术或方法、满足信息用户的需求。 搜索引擎(Search Engine,简称SE)是实现如下功能的一个系统:收集、整理和组织信息并为用户提供查询服务。面向WEB的SE是其中最典型的代表。三大特点:事先下载,事先组织,实时检索。 垂直搜索引擎:垂直搜索引擎为2006年后逐步兴起的一类搜索引擎。不同于通用的网页搜索引擎,垂直搜索专注于特定的搜索领域和搜索需求(例如:机票搜索、旅游搜索、生活搜索、小说搜索、视频搜索等等),在其特定的搜索领域有更好的用户体验。相比通用搜索动辄数千台检索服务器,垂直搜索需要的硬件成本低、用户需求特定、查询的方式多样。 Web检索的历史: 1989年,伯纳斯·李在日内瓦欧洲离子物理研究所(CERN)开发计算机远程控制时首次提出了Web概念,并在1990年圣诞节前推出了第一个浏览器。接下来的几年中,他设计出HTTP、URL和HTML的规范,使网络能够为普通大众所应用。 Ted Nelson 在1965年提出了超文本的概念.超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络传输协议,超文本标注语言(HTML)。 1993, 早期的 web robots (spiders) 用于收集 URL: Wanderer、ALIWEB (Archie-Like Index of the WEB)、WWW Worm (indexed URL’s and titles for regex search)。 1994, Stanford 博士生 David Filo and Jerry Yang 开发手工划分主题层次的雅虎网站。 1994年初,WebCrawler是互联网上第一个支持搜索文件全部文字的全文搜索引擎,在它之前,用户只能通过URL和摘要搜索,摘要一般来自人工评论或程

不定式、动名词、过去分词 作定语的用法

不定式作定语的用法 不定式及其短语作定语,与其他短语作定语一样,一般都放在被修饰的词之后,通常表示一个将来的动作,有时也可以表示某一过去的特定动作。 一些名词后常用不定式作定语,如:chance(机会),way(方法),time(时间)等;另外,the first,the second,the last,the only等作名词或者它们作形容词用来修饰代词,它们或它们所修饰的代词后,也常用不定式作定语。 不定式作定语时,不定式与被修饰词之间存在的关系复杂,有的是主谓关系;有的是动宾关系;有的是动状关系,还有的不存在主谓、动宾、动状关系。 1、主谓关系的 (1)We must find a person to do the work. (2) There is no one to take care of her. (3) In my family, my mother is always the first one to get up. (4) He is always the first to come and the last to leave. (5) We need someone to go and get a doctor. 2、动宾关系的 如果不定式与被修饰的词在逻辑上存在动宾关系,不定式里的动词必须是及物动词。注意:是及物动词的,后面不要再加宾语,因为前面的被修饰词是它的宾语;是不及物动词的,要加上适当的介词或副词让它变成及物动词,只有这样,它才能带上前面的宾语。 (1) He has a lot of books to read. (2) I would like a magazine to look at. (3) Here is some advice for you to follow. (4) Do you have anything else to say? (5) There is no one to take care of. (6) She has nothing to worry about.

中文分词实验

中文分词实验 一、实验目的: 目的:了解并掌握基于匹配的分词方法,以及分词效果的评价方法。 实验要求: 1、从互联网上查找并构建不低于10万词的词典,构建词典的存储结构; 2、选择实现一种机械分词方法(双向最大匹配、双向最小匹配、正向减字最大匹配法等)。 3、在不低于1000个文本文件,每个文件大于1000字的文档中进行中文分词测试,记录并分析所选分词算法的准确率、分词速度。 预期效果: 1、平均准确率达到85%以上 二、实验方案: 1.实验平台 系统:win10 软件平台:spyder 语言:python 2.算法选择 选择正向减字最大匹配法,参照《搜索引擎-原理、技术与系统》教材第62页的描述,使用python语言在spyder软件环境下完成代码的编辑。 算法流程图:

Figure Error! No sequence specified.. 正向减字最大匹配算法流程

Figure Error! No sequence specified.. 切词算法流程算法伪代码描述:

3.实验步骤 1)在网上查找语料和词典文本文件; 2)思考并编写代码构建词典存储结构; 3)编写代码将语料分割为1500个文本文件,每个文件的字数大于1000字; 4)编写分词代码; 5)思考并编写代码将语料标注为可计算准确率的文本; 6)对测试集和分词结果集进行合并; 7)对分词结果进行统计,计算准确率,召回率及F值(正确率和召回率的 调和平均值); 8)思考总结,分析结论。 4.实验实施 我进行了两轮实验,第一轮实验效果比较差,于是仔细思考了原因,进行了第二轮实验,修改参数,代码,重新分词以及计算准确率,效果一下子提升了很多。 实验过程:

分词作定语讲解

分词作定语 分词作定语时有下面几个特点: 1) 现在分词表示主动意义,过去分词一般表示被动含意。 2) 现在分词表示正在进行,过去分词表示状态或做完(完成)的事。 He rushed into the burning house .他冲进了正在燃烧着的房子。 The child standing over there is my brother .站在那儿的男孩子是我弟弟。 The room facing south is our classroom .朝南的房间是我们的教室。 Have you got your watch repaired? 你拿到那个修好的表了吗? 分词作定语时的时间关系 一般来说,不定式所表示的动作发生在谓语动词所表示的动作之后;现在分词所表示的动作与谓语动词所表示的动作 同时发生;过去分词表示的动作发生在谓语动词所表示的动作之前。例如: Do you want to see the doctor to be sent for from Beijing? 你要见那位将从北京请来的医生吗? Do you want to see the doctor working on the case report in the office? 你要见那位正在办公室里写病历的医生吗? 共同点:单个分词做定语放在所修饰名词前(a swimming pool) ;分词短语(就是不仅仅由一个分词构成的用来修饰名词的短语the book written by Luxun )做后置定语,即放名词后。 用过去分词还是现在分词做定语的判断关键:名词与该动作的关系 1.现在分词(Ving) 做定语: 从功能上看,现在分词做定语表示1)主动(及物);2)进行(不及物)。 做定语:相当于一个定语从句(主动) Do you know the boy standing at the door? Do you know the boy who is standing at the door? A developing country needs aids. A country that/which is developing needs aids.

《Python程序设计》实验13 文件操作下实验报告

**大学数学与信息工程学院《Python程序设计》实验报告

print(st) 2、提取附件中年龄大于20岁人员的姓名、年龄、性别;并进行二进制序列化存储和读取。 代码: f=open(r'C:\Users\17458\Desktop\实验13附件.txt','r') bbk=f.readlines() ppk='' f1=open(r'C:\Users\17458\Desktop\p.txt','a+') for i in range(1,len(bbk)): if int(bbk[i][9]+bbk[i][10])>20: ppk=bbk[i][5:17] f1.write(ppk+'\n') f1.close() 3、安装第三方库jieba,编写程序统计《三国演义》中前5位出场最多的人物。(在cmd命令行先安装jieba库,pip install jieba;如果utf-8编码不成功,采用“gb18030”编码格式) 代码: import jieba f1=open(r'C:\Users\17458\Desktop\三国演义.txt','r',encoding='gb18030') others={'将军','却说','荆州','二人','不可','不能','如此','正是',\ '次日','徐州','洛阳'} kkk=f1.read() f1.close() bbk=jieba.lcut(kkk) counts={} for word in bbk: if len(word)==1: continue elif word=='孟德' or word =='丞相': rword='曹操' elif word=='诸葛亮' or word =='孔明曰':

分词工具比较

IKAnalyzer IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer已经推出了3个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。新版本的IKAnalyzer3.0则发展为面向Java的公用分词组件,独立于Lucene 项目,同时提供了对Lucene的默认优化实现。 语言和平台:基于java 语言开发,最初,它是以开源项目Luence 为应用主体的,结合词典分词和文法分析算法的中文分词组件。新版本的IKAnalyzer 3.0 则发展为面向 Java 的公用分词组件,独立于 Lucene 项目,同时提供了对Lucene 的默认优化实现。 算法:采用了特有的“正向迭代最细粒度切分算法”。采用了多子处理器分析模式,支持:英文字母( IP 地址、 Email 、 URL )、数字(日期,常用中文数量词,罗马数字,科学计数法),中文词汇(姓名、地名处理)等分词处理。优化的词典存储,更小的内存占用。支持用户词典扩展定义。针对 Lucene 全文检索优化的查询分析器 IKQueryParser ;采用歧义分析算法优化查询关键字的搜索排列组合,能极大的提高 Lucene 检索的命中率。 性能:60 万字 / 秒 IKAnalyzer基于lucene2.0版本API开发,实现了以词典分词为基础的正反向全切分算法,是LuceneAnalyzer接口的实现。该算法适合与互联网用户的搜索习惯和企业知识库检索,用户可以用句子中涵盖的中文词汇搜索,如用"人民"搜索含"人民币"的文章,这是大部分用户的搜索思维;不适合用于知识挖掘和网络爬虫技术,全切分法容易造成知识歧义,因为在语义学上"人民"和"人民币"是完全搭不上关系的。 je-anlysis的分词(基于java实现) 1. 分词效率:每秒30万字(测试环境迅驰1.6,第一次分词需要1-2秒加载词典) 2. 运行环境: Lucene 2.0 3. 免费安装使用传播,无限制商业应用,但暂不开源,也不提供任何保证 4. 优点:全面支持Lucene 2.0;增强了词典维护的API;增加了商品编码的匹配;增加了Mail地址的匹配;实现了词尾消歧算法第二层的过滤;整理优化了词库; 支持词典的动态扩展;支持中文数字的匹配(如:二零零六);数量词采用“n”;作为数字通配符优化词典结构以便修改调整;支持英文、数字、中文(简体)混合分词;常用的数量和人名的匹配;超过22万词的词库整理;实现正向最大匹配算法;支持分词粒度控制 ictclas4j ictclas4j中文分词系统是sinboy在中科院张华平和刘群老师的研制的FreeICTCLAS的基础上完成的一个java开源分词项目,简化了原分词程序的复

编译原理实验报告

院系:计算机科学学院 专业、年级: 07计科2大班 课程名称:编译原理 学号姓名: 指导教师: 2010 年11月17 日 组员学号姓名

实验 名称 实验一:词法分析实验室9205 实验目的或要求 通过设计一个具体的词法分析程序,加深对词法分析原理的理解。并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。 编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。 具体要求:输入为某语言源代码,达到以下功能: 程序输入/输出示例:如源程序为C语言。输入如下一段: main() { int a,b; a=10; b=a+20; } 要求输出如下(并以文件形式输出或以界面的形式输出以下结果)。 (2,”main”) (5,”(“) (5,”)“) (5,”{“} (1,”int”) (2,”a”) (5,”,”) (2,”b”) (5,”;”) (2,”a”) (4,”=”) (3,”10”) (5,”;”) (2,”b”) (4,”=”) (2,”a”) (4,”+”) (3,”20”) (5,”;”) (5,”}“) 要求: 识别保留字:if、int、for、while、do、return、break、continue等等,单词种别码为1。 其他的标识符,单词种别码为2。常数为无符号数,单词种别码为3。 运算符包括:+、-、*、/、=、>、<等;可以考虑更复杂情况>=、<=、!= ;单词种别码为4。分隔符包括:“,”“;”“(”“)”“{”“}”等等,单词种别码为5。

最新现在分词用法总结

现在分词 一、基础知识: 现在分词(也叫动名词):表示主动和进行。 基本形式:doing 否定式:not doing 被动式:being done 完成式:having done 二、具体用法: 1.动名词作主语和宾语: (1)把一个动词变成-ing形式可以当做名词来用,表示一种经常性、习惯性的动作,可在句中充当主语和宾语。 eg: Working with you is a pleasure. I like reading in my free time. (2)可以用it做形式主语或形式宾语放在前面,再用动名词做真正的主语或宾语放在后面,这种用法常用于以下句式: ①It is/was no use/good doing sth. 做某事是没用的/没有好处的。 eg: It’s no use begging for his mercy. It’s no good smoking too much. ②It is/was a waster of time doing sth. 做某事是浪费时间的。 eg: It is a waste of time copying others’ homework. ③It is/was worth doing sth. 做某事是值得的。 eg: It was worth making the effort. ④There is/was no sense in doing sth. 做某事是没有道理的/意义的。 eg: There is no sense in arguing with your wife. ⑤There is/was no point (in) doing sth. 做某事是没用的/无意义的。 eg: There is no point in getting angry. ⑥There is no shame in doing sth. 做某事是不丢脸的。 eg: There is no shame in saying sorry to your friends. ⑦There is no telling…无法预言会… eg: There is no telling what will happen. ※注意:动名词作主语时,其前可用名词所有格和形容词性物主代词修饰,即one’s doing sth.作主语。 eg: Tom’s being late again made his teacher angry. My going to Beijing University is my parents’ biggest dream. (3)动名词作宾语分为两种情况:动名词后的宾语和介词后的宾语 ①有些动词后只能接动名词作宾语,常见的有: avoid, advise, allow, admit, appreciate, consider, deny, enjoy, keep, finish, suggest, dislike, delay, risk, escape, imagine, mind, miss, permit, practice, fancy, can’t help, be busy, give up, can’t stand, feel like等。 eg: You must avoid being hurt when crossing the road. ②有些动词后即可接动名词也可接不定式作宾语,常见的有: A: start, begin, intend, attempt, continue等后接doing和to do无区别。 B: like, love, prefer, hate等后接doing和to do略有区别,后接doing侧重经常习惯性的行为,后接to do侧重具体的某一次行为。 eg: I like swimming in summer but today I like to see a film at home

过去分词作定语用法.

过去分词作定语用法 (Past Participles Used as Attributes) 过去分词作定语,在语态上,表被动;在时间上,表示动作已经发生或完成,与它所修饰的名词有逻辑(意义)上的动宾关系。过去分词作定语时,所修饰的名词在逻辑上相当于被动句中的主语,过去分词相当于谓语。 过去分词作定语表示动作在谓语动作之前发生,已经完成并具有被动意义。有时也不表示时间性。作定语的过去分词一般由及物动词变来,因为只有及物动词才有被动意义。例如:He is a teacher loved by his students. 他是个很受学生爱戴的老师。 也有用不及物动词的过去分词作定语的情况,一般作前置定语,它不表示被动意义,只表示主动意义,强调动作完成。不能像及物动词的过去分词那样放在名词后面作定语。例如:fallen leaves 落叶 retired workers 退休工人 the risen sun 升起的太阳 注意下面过去分词作定语的几种情况: 1. 单个的过去分词作定语一般放在被修饰的名词之前。例如: We needed much more qualified workers. 我们需要更多的合格的工人。 My friend is a returned student. 我的朋友是个归国的留学生。 单个分词也可以作后置定语,用以强调动作。例如: They decided to change the material used. 他们决定更换使用的材料。 2. 过去分词短语作定语要放在被修饰的名词后面,作后置定语,其作用相当于一个定语从句。例如: The student dressed in white is my daughter. =The student who is dressed in white is my daughter.)穿白色衣服的学生是我的女儿。 3. 如果被修饰的词是由every/some/any/no + thing/body/one所构成的复合代词或指示代词those等时,即使一个单一的分词作形容词用,也要放在被修饰词的后面。例如: Is there anything unsolved? 还有没解决的问题吗? There is noting changed here since I left this town.自从我离开这个城镇以来,几乎没有什么变化。 4. 单个过去分词前加一名词或副词,常用连字符将它们连接起来构成一个复合形容词,放在其修饰的名词前,作前置定语。分词前加的名词表示分词的动作或行为主体,所加的副词表示方式、时间、程度、性质等意义。例如: This is a state-owned factory. 这是一家国营工厂。 This is our school-run factory. 这是我们的校办工厂。 5. 作前置定语的某些动词的过去分词的形式与作谓语或表语的过去分词的形式往往不一样。例如: 原形用作定语的过去分词用作表语或谓语的过去分词 drink drunken drunk

编译原理词法分析器实验报告

竭诚为您提供优质文档/双击可除编译原理词法分析器实验报告 篇一:编译原理词法分析器实验报告 曲阜师范大学实验报告 计算机系20XX年级软件工程一班组日期20XX年10月17日星期日 姓名 陈金金同组者姓名 课程编译原理成绩 实验名称:教师签章词法分析器 一、实验目的: 1·掌握词法分析的原理。 2·熟悉保留字表等相关的数据结构与单词的分类方法。 3·掌握词法分析器的设计与调试。 二、实验内容: 根据编译中的分词原理,编写一个词法分析程序: 1.输入:任意一个c语言程序的源代码。 2.处理:对输入进行分析,分离出保留字、标识符、常

量、算符和界符。 3.输出:对应的二元式(种别编码自定,可暂编为一类对应一个编码)。 三、实验要求: 1.任选c/c++/Java中的一种高级程序语言编程完成词法分析器。 2.词法分析器应以教材所述分词原理为依据,使用恰当的数据结构和方法,结构清晰、高效。 四、实验环境: windowsxp操作系统,J2se,eclipse集成开发环境 五、实验分析: 将源代码作为长字符串进行读入,之后通过switch语句,及状态转换图进行词素识别,并对识别的词素进行分类整理以二元式的形式输出。 六、实验过程: 1、建立词法分析器界面,很简单:输入框,输出框,执行分析按钮,清空按钮,退出程序按钮。主要的地方是,考虑mvc开发模式,为model及controller提供接口。实现界面如下所示: 2、核心代码的编写,考虑到需要进行词素的匹配,创建符号表类symTable。提供两个变量,分别存放如下内容:并提供方法insert(),lookup(),分别负责标志符的插

百度_baidu_搜索分词算法

Baidu查询分词算法 查询处理以及分词技术 如何设计一个高效的搜索引擎?我们可以以百度所采取的技术手段来探讨如何设计一个实用的搜索引擎.搜索引擎涉及到许多技术点,比如查询处理,排序算法,页面抓取算法,CACHE机制,ANTI-SPAM等等.这些技术细节,作为商业公司的搜索引擎服务提供商比如百度,GOOGLE等是不会公之于众的.我们可以将现有的搜索引擎看作一个黑盒,通过向黑盒提交输入,判断黑盒返回的输出大致判断黑盒里面不为人知的技术细节. 查询处理与分词是一个中文搜索引擎必不可少的工作,而百度作为一个典型的中文搜索引擎一直强调其”中文处理”方面具有其它搜索引擎所不具有的关键技术和优势.那么我们就来看看百度到底采用了哪些所谓的核心技术. 我们分两个部分来讲述:查询处理/中文分词. 一. 查询处理 用户向搜索引擎提交查询,搜索引擎一般在接受到用户查询后要做一些处理,然后在索引数据库里面提取相关的信息.那么百度在接受到用户查询后做了些什么工作呢? 1. 假设用户提交了不只一个查询串,比如”信息检索理论工具”.那么搜 索引擎首先做的是根据分隔符比如空格,标点符号,将查询串分割成若干子查询串,比如上面的查询就会被解析为:<信息检索,理论,工具>三个子字符串;这个道理 简单,我们接着往下看. 2. 假设提交的查询有重复的内容,搜索引擎怎么处理呢?比如查询”理论 工具理论”,百度是将重复的字符串当作只出现过一次,也就是处理成等价的”理论工具”,而GOOGLE显然是没有进行归并,而是将重复查询子串的权重增大进行处理.那么是如何得出这个结论的呢?我们可以将”理论工具”提交给百度,返回341,000篇文档,大致看看第一页的返回内容.OK.继续,我们提交查询”理论工具理论”,在看看返回结果,仍然是那么多返回文档,当然这个不能说明太多问题,那 看看第一页返回结果的排序,看出来了吗?顺序完全没有变化,而GOOGLE则排序有些变动,这说明百度是将重复的查询归并成一个处理的,而且字符串之间的先后出现顺序基本不予考虑(GOOGLE是考虑了这个顺序关系的). 3. 假设提交的中文查询包含英文单词,搜索引擎是怎么处理的?比如查询”电影BT下载”,百度的方法是将中文字符串中的英文当作一个整体保留,并以此为断点将中文切分开,这样上述的查询就切为<电影,BT,下载>,不论中间的英文是否一个字典里能查到的单词也好,还是随机的字符也好,都会当作一个整体来对待.

高中现在分词的用法

高中英语现在分词的用法 1)- ing分词(短语)作主语: 1. 动词-ing 形式作主语表示抽象的或泛指的动作, 谓语动词用单数。如: 1. Talking to him is talking to a wall. 对他说话等于对牛弹琴。 2. Smoking may cause cancer. 吸烟会致癌。 3. Walking is my only exercise. 散步是我唯一的运动。 4. Talking mends no holes. (谚)空谈无济于事。 5. Saying is easier than doing. 说比做容易。 1. 为了保持句子平衡,通常用作形式主语,而把真实主语放在句末。如:It is no use crying over spilt milk. 作无益的后悔是没有用的。 It's a waste of time arguing about it. 辩论这事是浪费时间。 常见的作表语的名词或短语有:no use, no good, fun, hard work, a hard / difficult job, a wonder, a waste of time 等。如: It is worthwhile discussing with her. It 's no good waiting here. Let 's go home. It was a waste of time reading that book. 2. 动词-ing形式的否定形式是在其前面加not。如: Your schoolmate 's not coming home made her parents worried. 2)-ing 分词(短语)作宾语: 1. I suggest ending the meeting. 我建议结束会议。 2. He admitted taking the money. 他承认钱是他拿的 3. I couldn ' t help laughing.

分词作定语练习题

分词作定语练习题 一Fill the form with V-ed 1. The ___________(steal) car was found by the police last week. 1. The book ___________________ (一本农民写的书) is very popular. 2. The ceremony(典礼)____________________(正在大厅举行的)is in memory of the hero. 3.The problem _________________________(在昨天会议上提出的) was very difficult to solve. 4. The window _________________________(被那个男孩打破的) is being repaired 5. The people _________________(暴露在阳光下的) got sunburnt. 6. The students _______________________(受到老师鼓舞的)worked harder than ever before. 7. The scientists _______________(在这儿工作的) are well paid. 二单项选择 1. Mary is a new nurse and her job is to take care of the soldiers. A. wound B. wounded C. wounding D. being

wounded 2. The meeting next Thursday mainly aims to deal with the problems linked to teenagers’mental health. A. to be held B. held C. being held D. having been held 3. Don’t use words, expressions, or phrases _____ only to people with specific knowledge. A. being known B. having been known C. to be known D. known 4 Linda worked for the Minnesota Manufacturing Mining Company_____ as 3M. A. knowing. B. known. C. being known. D. to be known 5 The _____ dishes lay on the floor. A breaking. B. broken. C. broke. D. break 6 the ship______ by a huge piece of iceberg sank 沉没with its passengers. A. hitting. B. hit. C. hitted. D. to hit. 7 Tell Mary that there’s someone ____ for her at the door. A. waiting. B. waits. C. waited. D. to wait.

人教版高中英语必修二高中现在分词用法练

高中现在分词用法练 时间:20150529 一 1. (make) full preparations, we are ready for the examination. 我们已经作好了充分准备,现在可以应考了。 (= After we have made full preparations...) 2. (be) ill, he didn't go to school yesterday. 由于生病,他昨天没有上学。 (= Because he was ill...) 3.His father died, (leave) him a lot of money. 他父亲死了,留给他许多钱. (= and left him a lot of money.) 4.He lay on the grass, (stare)at the sky for a long time. 他躺在草地上,长时间地望着天空。 (= ...and stared at the sky for a long time) 5. (work) hard at your lessons, you will succeed. 如果你努力学习,就一定能成功。 (=If you work hard at your lessons.) 6. (know)all this, they made me pay for the damage. 尽管知道了一切情况,他们还是要我赔偿损失。 (= Although they knew all this.)Rewrite the following sentences. 7. When he approached Ms Smith, he touched her shoulder and kissed her. ________________ Ms Smith, he touched her shoulder and kissed her. 8. The person who is translating the songs can speak seven languages. The person _________ ___ ______can speak seven languages. 9. Because he comes from Jordan, he moves close to ask you a question. _______ _____ Jordan, he moves close to ask you a question. 10. She sat at the desk and did her homework. She sat at the desk ______ ____ __________. 11. The picture that hangs on the wall is a world-famous one. The picture _______ on the wall is a world-famous one. 12. Because he di dn’t receive an answer, he decided to write another letter to him. ____ ____________ an answer, he decided to write another letter to him. 13. When he sees the mountain, he always thinks of his hometown. _______ the mountain, he always thinks of his hometown.

hanlp中文分词器解读

中文分词器解析hanlp分词器接口设计:

提供外部接口: 分词器封装为静态工具类,并提供了简单的接口

标准分词是最常用的分词器,基于HMM-Viterbi实现,开启了中国人名识别和音译人名识别,调用方法如下: HanLP.segment其实是对StandardTokenizer.segment的包装。 /** * 分词 * * @param text 文本 * @return切分后的单词 */ publicstatic Listsegment(String text) { return StandardTokenizer.segment(text.toCharArray()); } /** * 创建一个分词器
* 这是一个工厂方法
* 与直接new一个分词器相比,使用本方法的好处是,以后HanLP升级了,总能用上最合适的分词器 * @return一个分词器 */ publicstatic Segment newSegment() }

publicclass StandardTokenizer { /** * 预置分词器 */ publicstaticfinalSegment SEGMENT = HanLP.newSegment(); /** * 分词 * @param text 文本 * @return分词结果 */ publicstatic Listsegment(String text) { return SEGMENT.seg(text.toCharArray()); } /** * 分词 * @param text 文本 * @return分词结果 */ publicstatic Listsegment(char[]text) { return SEGMENT.seg(text); } /** * 切分为句子形式 * @param text 文本

现在分词作状语的用法

现在分词作状语的用法 现在分词作状语的用法 现在分词作状语: ①现在分词doing所代表的动作或状态与谓语动词是同时或几乎是同时发生的,可以作时间、原因、方式、条件、结果、目的、让步、伴随等状语。分词的逻辑主语就是句子的主语。如:Rushing out of the house, he was knocked down by a car. 他一冲出屋子就被一辆车撞倒了。 My cousin went to Shenzhen, hoping to find a job there. 我表兄去深圳了,希望在那儿找份工作。 The child fell,striking his head against the door. 小孩摔了一跤,头在门上碰了一下。 In the last few years, the country has had a hard time, suffering several killer quakes. 过去几年里,这个国家经历了艰难的时期,遭受了几次致命的地震。 Being spring, the flowers are in full bloom. 因为是春天,所以花都盛开着。 ②有些分词作状语,没有逻辑上的主语,已成为习惯用法:considering, judging from, talking of, allowing for(考虑到), generally/frankly/honestly/roughly/strictly speaking, assuming that(假设)等。如:

Talking of this film, its wonderful. 说到这部电影,好极了。 Assuming that it is true, what should we do now? 假定那是真的, 我们现在该怎麽办? Judging by the direction of the wind, it wont rain today. 根据风向测度, 今天不会下雨。 Social psychology, strictly speaking, deals with the behavior of people in groups. 严格地说, 社会心理学研究人们的群体行为。

自然语言理解课程实验报告

实验一、中文分词 一、实验内容 用正向最大匹配法对文档进行中文分词,其中: (1)wordlist.txt 词表文件 (2)pku_test.txt 未经过分词的文档文件 (3)pku_test_gold.txt 经过分词的文档文件 二、实验所采用的开发平台及语言工具 Visual C++ 6.0 三、实验的核心思想和算法描述 本实验的核心思想为正向最大匹配法,其算法描述如下 假设句子: , 某一词 ,m 为词典 中最长词的字数。 (1) 令 i=0,当前指针 pi 指向输入字串的初始位置,执行下面的操作: (2) 计算当前指针 pi 到字串末端的字数(即未被切分字串的长度)n ,如果n=1, 转(4),结束算法。否则,令 m=词典中最长单词的字数,如果n

(2)原代码如下 // Dictionary.h #include #include #include using namespace std; class CDictionary { public: CDictionary(); //将词典文件读入并构造为一个哈希词典 ~CDictionary(); int FindWord(string w); //在哈希词典中查找词

中文分词入门之最大匹配法

中文分词入门之最大匹配法 发表于2009年01月12号由52nlp 中文分词在中文信息处理中是最最基础的,无论机器翻译亦或信息检索还是其他相关应用,如果涉及中文,都离不开中文分词,因此中文分词具有极高的地位。中文分词入门最简单应该是最大匹配法了,当年师兄布置给我的第一个学习任务就是实现最大匹配法的分词算法(正向、逆向)。记得当时对自己参考学习最有帮助的是北大詹卫东老师“中文信息处理基础”的课件和源程序,不过他实现的是mfc程序,词表存储在数据库里。自己实现时用纯c++实现,利用hash_map 存储词表。这里我介绍一下相关的知识和一个简单的程序示例,部分参考自詹老师的讲义。 正向最大匹配法算法如下所示: (注:以上最大匹配算法图来自于詹老师讲义) 逆向匹配法思想与正向一样,只是从右向左切分,这里举一个例子: 输入例句:S1=”计算语言学课程有意思” ; 定义:最大词长MaxLen = 5;S2= ” “;分隔符= “/”;

假设存在词表:…,计算语言学,课程,意思,…; 最大逆向匹配分词算法过程如下: (1)S2=”";S1不为空,从S1右边取出候选子串W=”课程有意思”; (2)查词表,W不在词表中,将W最左边一个字去掉,得到W=”程有意思”; (3)查词表,W不在词表中,将W最左边一个字去掉,得到W=”有意思”; (4)查词表,W不在词表中,将W最左边一个字去掉,得到W=”意思” (5)查词表,“意思”在词表中,将W加入到S2中,S2=” 意思/”,并将W从S1中去掉,此时S1=”计算语言学课程有”; (6)S1不为空,于是从S1左边取出候选子串W=”言学课程有”; (7)查词表,W不在词表中,将W最左边一个字去掉,得到W=”学课程有”; (8)查词表,W不在词表中,将W最左边一个字去掉,得到W=”课程有”; (9)查词表,W不在词表中,将W最左边一个字去掉,得到W=”程有”; (10)查词表,W不在词表中,将W最左边一个字去掉,得到W=”有”,这W是单字,将W 加入到S2中,S2=“ /有/意思”,并将W从S1中去掉,此时S1=”计算语言学课程”; (11)S1不为空,于是从S1左边取出候选子串W=”语言学课程”; (12)查词表,W不在词表中,将W最左边一个字去掉,得到W=”言学课程”; (13)查词表,W不在词表中,将W最左边一个字去掉,得到W=”学课程”; (14)查词表,W不在词表中,将W最左边一个字去掉,得到W=”课程”; (15)查词表,“意思”在词表中,将W加入到S2中,S2=“课程/ 有/ 意思/”,并将W从S1中去掉,此时S1=”计算语言学”; (16)S1不为空,于是从S1左边取出候选子串W=”计算语言学”; (17)查词表,“计算语言学”在词表中,将W加入到S2中,S2=“计算语言学/ 课程/ 有/ 意思/”,并将W从S1中去掉,此时S1=”"; (18)S1为空,输出S2作为分词结果,分词过程结束。 相应程序示例: 准备文件:建立一个词表文件wordlexicon,格式如下 计算语言学 课程 意思 输入文件:test,格式如下 计算语言学课程有意思 编译后执行如下:SegWord.exe test 输出分词结果文件:SegmentResult.txt 源代码如下: // Dictionary.h #include #include #include #include #include using namespace std; using namespace stdext;

相关文档
最新文档