美文网首页
IR homework 1: 构建布尔检索系统

IR homework 1: 构建布尔检索系统

作者: cuizixin | 来源:发表于2018-09-22 23:08 被阅读3次

    ir homework 1: 构建布尔检索系统

    思路

    语料库预处理

    • 去除非中文汉字符号,包括:标点符号、英文、数字等等
    • 分词
    • 去停用词

    建表

    • 获取语料库的词汇表
    • 获取各个文档的词汇表
    • 建表,用dict类型word2docs保存,word对应包含该word的文档编号

    查询文档

    • 解析用户表达式
    • 合法性检查
    • 计算符合条件的文档集合
    • 打印结果

    待解决的问题

    • 查询表达式,其中一个运算项经过预处理后为空,怎么办
      • 空集合&其他集合=空集合

    资源

    停用词表
    https://github.com/dongxiexidian/Chinese
    结巴分词
    https://github.com/fxsjy/jieba

    有用的代码块

    逐行读文件

    with open(file_name, 'r') as f1:
        for line in f1.readlines():
            pass # do something
    

    如何只保留中文汉字

    去掉标点符号,英文,数字等。

    def chinese_word_extraction(content_raw):
        '''只保留中文汉字
        '''
        chinese_pattern = u"([\u4e00-\u9fa5]+)"
        chi_pattern = re.compile(chinese_pattern)
        re_data = chi_pattern.findall(content_raw)
        content_clean  = ' '.join(re_data)
        return content_clean
    

    如何进行中文分词

    word_list = list(jieba.cut_for_search(line))
    

    如何检查一个表达式是否合法

    def check_syntax(expression, **variables):
        """检查表达式合法性
        """
        try:
            eval(expression, variables)
        except (SyntaxError, NameError, ZeroDivisionError):
            return False
        else:
            return True
    

    相关文章

      网友评论

          本文标题:IR homework 1: 构建布尔检索系统

          本文链接:https://www.haomeiwen.com/subject/datfoftx.html