美文网首页
网络数据挖掘 L1-L3 Indexer&Search

网络数据挖掘 L1-L3 Indexer&Search

作者: gb_QA_log | 来源:发表于2018-07-12 15:23 被阅读0次

title: 网络数据挖掘 L1-L3 Indexer&Search
date: 2017-03-28 15:39:09
categories: DataMining
mathjax: true
tags: [WebDataMining]


L1 Instruction

略略略

L2 Architecture and Spiders

网页、网站架构、搜索引擎等

image.png

homework: Spider

L3 Indexer and Search

Indexer

image.png
  • Tokenizer

  • Stemmer词干器(Porter stemming algorithm

    • Root: fish
    • Words from the root: fishing, fished, fisher
  • Lemmatization词形还原(BE for am, is, are, was, were, been)

  • Spell Checking or Correction

    • Example: s1=“war”, s2=“peace”
    • war>par>pear>peac>peace
    • Operations are: type3, type1, type3,type1
    • Edit distance=4
    • image.png
  • Token Sequence:Sequence of (Modified token, Document ID) pairs.

  • sort:Sort by terms And then docID

  • Dictionary and Postings:频率和doc list

    • image.png

Search

  • Boolean Model

    • Implementation
      • Three basic operations: AND, OR, NOT
      • Construct a binary tree to represent query
      • Process the input lists bottom-up
    • 优点:精确查询、实现简单
    • 缺点:文档权重一致、用户需要很好的Boolean query
  • Ranked Retrieval Model

    • Jaccard系数:存在Jaccard系数word权重相等的问题
    • TF&IDF
      • Term frequency tf:term在document中出现越多,该文档和该词越相关
      • Document frequency df:term在越多document出现,term的信息量越少
      • Inverse document frequency idf:idf(t)=log_{10}(N/df(t)),N是document的总量
      • Tf-idf:tf.idf(t, d) = tf(t, d) * idf(t)
      • Final Rank: R(Q,d)=\sum_{t\in Q}tf.idf(t,d)
  • Vector Space Model向量空间模型VSM

    • 把文档看作一系列词(Term),每一个词(Term)都有一个权重(Term weight),不同的词(Term)根据自己在文档中的权重来影响文档相关性的打分计算。
    • 于是我们把所有此文档中词(term)的权重(term weight) 看作一个向量。
      • Document = {term1, term2, …… ,term N}
      • 计算R(Q,d):Document Vector = {weight1, weight2, …… ,weight N}
    • 同样我们把查询语句看作一个简单的文档,也用向量来表示。
      • Query = {term1, term 2, …… , term N}
      • 计算R(Q,d):Query Vector = {weight1, weight2, …… , weight N}
    • 我们把所有搜索出的文档向量及查询向量放到一个N维空间中,每个词(term)是一维。


      Vector space model.jpg
    • 两个向量之间的夹角越小,相关性越大。所以我们计算夹角的余弦值作为相关性的打分,夹角越小,余弦值越大,打分越高,相关性越大。
    • 正则化并计算cos: image.png
  • Probabilistic Model

  • Evaluation

    • Precision:The fraction of retrieved documents that are relevant
    • Recall:The fraction of relevant documents that are retrieved
    • image.png

homework

//倒排文件索引(Inverted File Index)
import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[] args){
        Main test = new Main();
        test.MyInvertedFileBuilde();
    }
    private void MyInvertedFileBuilde(){
        File dir = new File("documents");
        File[] files = dir.listFiles();
        LinkedHashMap<Integer, String> src = new LinkedHashMap<>();
        LinkedHashMap<String, LinkedHashSet<Integer>> invertedFile = new LinkedHashMap<>();
        for (int id = 0; id < files.length; id++) {
            File file = files[id];
            String lineTxt = new String();
            if(file.isFile()){
                try {
                    InputStreamReader read = new InputStreamReader(new FileInputStream(file),"GBK");
                    BufferedReader bufferedReader = new BufferedReader(read);
                    String tmp = null;
                    while((tmp = bufferedReader.readLine()) != null){
                        lineTxt = lineTxt + tmp;
                    }
                    src.put(id, lineTxt);//files ID map
                    String[] words = lineTxt.split(" ");
                    for (String word : words) {
                        if(!invertedFile.containsKey(word)){
                            invertedFile.put(word,new LinkedHashSet<Integer>());
                            invertedFile.get(word).add(id);
                        }else {
                            invertedFile.get(word).add(id); // words inveredFile
                        }
                        
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
        for (String word : invertedFile.keySet()) {
            System.out.println(word+" "+invertedFile.get(word));
        }
    }
}

相关文章

  • 网络数据挖掘 L1-L3 Indexer&Search

    title: 网络数据挖掘 L1-L3 Indexer&Searchdate: 2017-03-28 15:39:...

  • 获取社交网络数据的方式汇总|网络挖掘必备技能

    网络型数据挖掘是一项主流的、重要的数据挖掘技术,常见的如社交网络、购物网络、金融网络等网络类型在生活中无处不在,做...

  • Python网络爬虫:基础知识Beautiful Soup

    一、Beautiful Soup简介 网络数据挖掘指的是从网站中获取数据的过程,数据挖掘技术可以让我们从网站世界中...

  • 2018-12-04

    数据挖掘-网络挖掘 社交网络:点-用户, 边-好友关系 金融网络:点-网站,边-超链接 互联网站:点-个人和机构,...

  • 数据挖掘学习报告

    数据挖掘的流程有,数据预处理、建立模型、构建网络、训练模型和加载模型预测。上面的代码显示了一个很简单的数据挖掘流程...

  • 电商数据挖掘常用到的方法

    大数据的挖掘常用的方法有分类、回归分析、聚类、关联规则、神经网络方法、Web 数据挖掘等,这些方法从不同的角度对数...

  • 时空数据挖掘

    数据挖掘已经成为当代显学,只要是个公司可能都需要数据挖掘,由此也衍生除了金融数据挖掘、生物数据挖掘、时空数据挖掘、...

  • 数据挖掘:理论与算法笔记3-从贝叶斯到决策树

    上一篇: 数据挖掘:理论与算法笔记2-数据预处理下一篇: 数据挖掘:理论与算法笔记4-神经网络 3 从贝叶斯到决策...

  • 学习笔记--(移动数据挖掘引言)

    移动数据挖掘的定义 移动数据挖掘研究的是基于移动数据的数据挖掘算法。这些数据算法需要更多地利用移动数据特性,挖掘与...

  • 网络数据挖掘-L10

    title: 网络数据挖掘-L10date: 2017-07-26 11:54:52categories: Dat...

网友评论

      本文标题:网络数据挖掘 L1-L3 Indexer&Search

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