Hongfei Yan unread, Mar 24, 2013, 4:33:11 AM 3/24/13
Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to cs41...@googlegroups.com
16名同学选课 ==Linux, C++ (5) GUOYanwei, WUYuexin, JIANGHan,LIYechen, CHAIXiaohu, ==Linux, C++, without Makefile (2) KANGHuawei, LIANGXiongkai, FANnana ==Win, C++ (3) SONGXintong, HUANGYanxiang, HUANGZhe
==Java (2) ZHAOHaoshu, CUIChenyang(assign1&2 in Java, assign3 in Python) ==Python (3) YANGTing, CHENWeizheng, RONGXiaosong Note: 0)提交的作业,如有可能,尽量使用英文 。尤其源程序中不要出现非英文字符,乱码。
1)提交的打包作业,不要包含数据集,可执行文件及中间文件 。太大了,且没用。 2)作业说明中不要出现类似“我的想法和ppt上的差不多”字眼。不知道是那个ppt,哪一页。 3)如果是在Linux系统中,用C++完成的作业,希望能提供Makefile,因为不使用集成环境。 4)作业中使用到其他的包,请说明,并给出出处。比如,很多同学用到了stemming包。
5)可以基于其他同学的前次作业代码,来完成后续作业,但是要注明出处。比如提供的过岩巍的代码,或者其他同学代码。 6)上述统计如有错误,请反馈。 7)另:我只是尽量看了过岩巍的第一次作业的代码,其中query analysis部分使用stack还没有看懂。 吴悦昕也使用了boost库,虽然我这里版本与他的一致,还是无法编译通过。 附上过岩巍的作业供大家参考,他使用了boost库,我可以编译通过。欢迎大家讨论、学习作业代码 。
#include<boost/algorithm/string.hpp> #include<boost/unordered_map.hpp ==assignment 1 完成情况: 1、完成对Shakespeare文档集以文档为单位构建倒排索引。对文档内容,全部转为小写,用空格,"\t","\n"作为词项切分符。未进行去停、词项归一、词干还原操作。
2、完成布尔检索模型支持布尔查询。我定义的布尔查询规则如下: 1)默认空格表示与操作,竖线符号"|"表示或操作,感叹号"!"表示非操作 2)非操作优先级最高,与操作次之,或操作优先级最低 3)支持括号(),括号内部操作先进行 4)"!"后面必须紧跟一个查询词,之间不能有空格,否则报错 5)括号,"!","|"与查询词之间必须有空格,以空格为切分符号进行查询词和操作符的截取
6)括号必须匹配,否则报错 7)查询会被转为小写格式 3、完成查询合并优化。多个查询词进行与操作合并、或操作合并时,较短的倒排链先合并,节省时间开销。 4、查询返回符合要求的文档名,其结果按照文档包含查询词个数和由多到小排列,即相关度以查询中所有查询词频次之和来衡量。 ==assignment 2 完成情况: 1、完成对Shakespeare文档集以文档为单位构建倒排索引。对文档内容,全部转为小写,用空格、"\t"作为词项切分符。
2、使用网络上他人提供的一个用于词干还原的库进行stemming处理,源文件在source/stem/目录下。 3、完成布尔检索模型支持布尔查询。我定义的布尔查询规则如下: 1)默认空格表示与操作,"/n"表示在位置距离绝对值在n以内的与操作,竖线符号"|"表示或操作,感叹号"!"表示非操作,引号""表示词组查询。 2)词组查询是特殊的与操作:"A B"表示B在A后面一个位置出现的与操作
3)非操作优先级最高,词组查询次之,与操作再次之,或操作优先级最低 4)支持括号(),括号内部操作先进行 5)"!"后面必须紧跟一个查询词,之间不能有空格,否则报错 6)括号必须匹配,引号必须匹配,否则报错 7)不支持单纯的与操作和非操作的结果进一步进行位置信息相关查询 8)多个带位置的与操作严格按照从左到右顺序,不支持使用括号改变多个带位置的与操作的顺序。 9)查询会被转为小写格式
4、完成查询合并优化。多个查询词进行或操作合并时,较短的倒排链先合并,节省时间开销。 使用方法: 1、make:编译生成buildIndex和searchQuery两个可执行文件置于该目录下。 2、./buildIndex your_doc_input_directory:对your_doc_input_directory目录下文档集进行索引构建,结果会生成index目录存放倒排索引文件和文档对应id文件。
3、./searchQuery:执行searchQuery进行布尔查询。可不断输入查询。输入/q退出程序。 4、make clean:清除index文件夹、buildIndex和searchQuery。 5、查询示例: 1)包含词组friend to并且包含词组to friend:"friend to" "to friend" 2)friend和caesar位置距离绝对值在3以内并且caesar和brutus位置距离绝对值在3以内:friend /3 caesar /3 brutus
3)包含词组friend to或者包含friend和to位置距离绝对值在1以内:"friend to" | friend /1 to 4)包含hamlet或者caesar并且包含词组friend to:(hamlet | caesar) "friend to" ==assignment 3 完成情况: 1、在作业2的基础上,增加拼写错误检查。若一个查询词在索引中找不到,则会根据编辑距离以及jaccard系数推荐三个最相近的词项。
2、完成布尔检索模型支持布尔查询。我定义的布尔查询规则如下: 1)默认空格表示与操作,"/n"表示在位置距离绝对值在n以内的与操作,竖线符号"|"表示或操作,感叹号"!"表示非操作,引号""表示词组查询。 2)词组查询是特殊的与操作:"A B"表示B在A后面一个位置出现的与操作 3)非操作优先级最高,词组查询次之,与操作再次之,或操作优先级最低
4)支持括号(),括号内部操作先进行 5)"!"后面必须紧跟一个查询词,之间不能有空格,否则报错 6)括号必须匹配,引号必须匹配,否则报错 7)不支持单纯的与操作和非操作的结果进一步进行位置信息相关查询 8)多个带位置的与操作严格按照从左到右顺序,不支持使用括号改变多个带位置的与操作的顺序。 9)查询会被转为小写格式 5、查询示例: 1)若搜索you错误输入为yuo,则会显示
For yuo do you mean: quo you your 2)若搜索like friend错误输入为likk friemd,则会显示 For likk do you mean: link lick like For friemd do you mean: friend friends field 环境: 操作系统 linux boost库 1.43 使用方法: 1、make:编译生成buildIndex和searchQuery两个可执行文件置于该目录下。
2、./buildIndex your_doc_input_directory:对your_doc_input_directory目录下文档集进行索引构建,结果会生成index目录存放倒排索引文件和文档对应id文件。 3、./searchQuery:执行searchQuery进行布尔查询。可不断输入查询。输入/q退出程序。 4、make clean:清除index文件夹、buildIndex和searchQuery。
CS41013-Assign1-1201214035.zip
CS41013-Assign2-1201214035.zip
CS41013-Assign3-1201214035.zip