精华内容
下载资源
问答
  • 利用word2vec对关键词进行聚类

    万次阅读 多人点赞 2013-09-04 17:07:47
    说实话,我不太明白对关键词聚类跟新闻推荐有什么联系,不过他说什么我照就是了。 按照一般的思路,可以用新闻ID向量来表示某个关键词,这就像广告推荐系统里面用用户访问类别向量来表示用户一样,然后就可以用...

    继上次提取关键词之后,项目组长又要求我对关键词进行聚类。说实话,我不太明白对关键词聚类跟新闻推荐有什么联系,不过他说什么我照做就是了。

    按照一般的思路,可以用新闻ID向量来表示某个关键词,这就像广告推荐系统里面用用户访问类别向量来表示用户一样,然后就可以用kmeans的方法进行聚类了。不过对于新闻来说存在一个问题,那就量太大,如果给你十万篇新闻,那每一个关键词将需要十万维的向量表示,随着新闻数迅速增加,那维度就更大了,这计算起来难度太大。于是,这个方法思路简单但是不可行。

    好在我们有word2vec这个工具,这是google的一个开源工具,能够仅仅根据输入的词的集合计算出词与词直接的距离,既然距离知道了自然也就能聚类了,而且这个工具本身就自带了聚类功能,很是强大。下面正式介绍如何使用该工具进行词的分析,关键词分析和聚类自然也就包含其中了。word2vec官网地址看这里:https://code.google.com/p/word2vec/

    1、寻找语料

    要分析,第一步肯定是收集数据,这里不可能一下子就得到所有词的集合,最常见的方法是自己写个爬虫去收集网页上的数据。不过,如果不需要实时性,我们可以使用别人提供好的网页数据,例如搜狗2012年6月到7月的新闻数据:http://www.sogou.com/labs/dl/ca.html 直接下载完整版,注册一个帐号,然后用ftp下载,ubuntu下推荐用filezilla





    下载得到的数据有1.5G



    2、分词

    我们得到的1.5的数据是包含一些html标签的,我们只需要新闻内容,也就是content其中的值。首先可以通过简单的命令把非content的标签干掉

    cat news_tensite_xml.dat | iconv -f gbk -t utf-8 -c | grep "<content>"  > corpus.txt

    得到了corpus.txt文件只含有content标签之间的内容,再对内容进行分词即可,这里推荐使用之前提到过的ANSJ,没听过的看这里:http://blog.csdn.net/zhaoxinfan/article/details/10403917

    下面是调用ANSJ进行分词的程序:

    import java.util.HashSet;
    import java.util.List;
    import java.util.Set;
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.io.StringReader;
    import java.util.Iterator;
    
    import love.cq.util.IOUtil;
    
    import org.ansj.app.newWord.LearnTool;
    import org.ansj.domain.Term;
    import org.ansj.recognition.NatureRecognition;
    import org.ansj.splitWord.Analysis;
    import org.ansj.splitWord.analysis.NlpAnalysis;
    import org.ansj.splitWord.analysis.ToAnalysis;
    import org.ansj.util.*;
    import org.ansj.recognition.*;
    
    
    public class test {
    	public static final String TAG_START_CONTENT = "<content>";
        public static final String TAG_END_CONTENT = "</content>";
        
        public static void main(String[] args) {
            String temp = null ;
            
            BufferedReader reader = null;
            PrintWriter pw = null;
            try {
                reader = IOUtil.getReader("corpus.txt", "UTF-8") ;
                ToAnalysis.parse("test 123 孙") ;
                pw = new PrintWriter("resultbig.txt");
                long start = System.currentTimeMillis()  ;
                int allCount =0 ;
                int termcnt = 0;
                Set<String> set = new HashSet<String>();
                while((temp=reader.readLine())!=null){
                    temp = temp.trim();
                    if (temp.startsWith(TAG_START_CONTENT)) {
                        int end = temp.indexOf(TAG_END_CONTENT);
                        String content = temp.substring(TAG_START_CONTENT.length(), end);
                        //System.out.println(content);
                        if (content.length() > 0) {
                            allCount += content.length() ;
                            List<Term> result = ToAnalysis.parse(content);
                            for (Term term: result) {
                                String item = term.getName().trim();
                                if (item.length() > 0) {
                                    termcnt++;
                                    pw.print(item.trim() + " ");
                                    set.add(item);
                                }
                            }
                            pw.println();
                        }
                    }
                }
                long end = System.currentTimeMillis() ;
                System.out.println("共" + termcnt + "个term," + set.size() + "个不同的词,共 "
                        +allCount+" 个字符,每秒处理了:"+(allCount*1000.0/(end-start)));
            } catch (IOException e) { 
                e.printStackTrace();
            } finally {
                if (null != reader) {
                    try {
                        reader.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (null != pw) {
                    pw.close();
                }
            }
        }
    }

    经过对新闻内容分词之后,得到的输出文件resultbig.txt有2.2G,其中的格式如下:


    这个文件就是word2vec工具的输入文件


    3、本地运行word2vec进行分析

    首先要做的肯定是从官网上下载word2vec的源码:http://word2vec.googlecode.com/svn/trunk/ ,然后把其中makefile文件的.txt后缀去掉,在终端下执行make操作,这时能发现word2vec文件夹下多了好几个东西。接下来就是输入resultbig.txt进行分析了:

    ./word2vec -train resultbig.txt -output vectors.bin -cbow 0 -size 200 -window 5 -negative 0 -hs 1 -sample 1e-3 -threads 12 -binary 1

    这里我们指定输出为vectors.bin文件,显然输出到文件便于以后重复利用,省得每次都要计算一遍,要知道处理这2.2G的词集合需要接近半个小时的时间:




    下面再输入计算距离的命令即可计算与每个词最接近的词了:

    ./distance vectors.bin

    这里列出一些有意思的输出:





    怎么样,是不是觉得还挺靠谱的?补充一点,由于word2vec计算的是余弦值,距离范围为0-1之间,值越大代表这两个词关联度越高,所以越排在上面的词与输入的词越紧密。

    至于聚类,只需要另一个命令即可:

    ./word2vec -train resultbig.txt -output classes.txt -cbow 0 -size 200 -window 5 -negative 0 -hs 1 -sample 1e-3 -threads 12 -classes 500

    按类别排序:

    sort classes.txt -k 2 -n > classes.sorted.txt



    后记:如果想要了解word2vec的实现原理,应该读一读官网后面的三篇参考文献。显然,最主要的应该是这篇: Distributed Representations of Words and Phrases and their Compositionality  

    这篇文章的基础是 Natural Language Processing (almost) from Scratch 其中第四部分提到了把deep learning用在NLP上。

    最后感谢晓阳童鞋向我提到这个工具,不愧是立志要成为NLP专家的人。


    附:一个在线测试的网站,貌似是一位清华教授做的:http://cikuapi.com/index.php


    展开全文
  • 利用word2vec对全网关键词进行聚类

    千次阅读 2014-08-18 20:40:31
    说实话,我不太明白对关键词聚类跟新闻推荐有什么联系,不过他说什么我照就是了。 按照一般的思路,可以用新闻ID向量来表示某个关键词,这就像广告推荐系统里面用用户访问类别向量来表示用户一样,然后就可以用...

    http://blog.csdn.net/zhaoxinfan/article/details/11069485

    继上次提取关键词之后,项目组长又要求我对关键词进行聚类。说实话,我不太明白对关键词聚类跟新闻推荐有什么联系,不过他说什么我照做就是了。

    按照一般的思路,可以用新闻ID向量来表示某个关键词,这就像广告推荐系统里面用用户访问类别向量来表示用户一样,然后就可以用kmeans的方法进行聚类了。不过对于新闻来说存在一个问题,那就量太大,如果给你十万篇新闻,那每一个关键词将需要十万维的向量表示,随着新闻数迅速增加,那维度就更大了,这计算起来难度太大。于是,这个方法思路简单但是不可行。

    好在我们有word2vec这个工具,这是google的一个开源工具,能够仅仅根据输入的词的集合计算出词与词直接的距离,既然距离知道了自然也就能聚类了,而且这个工具本身就自带了聚类功能,很是强大。下面正式介绍如何使用该工具进行词的分析,关键词分析和聚类自然也就包含其中了。word2vec官网地址看这里:https://code.google.com/p/word2vec/

    1、寻找语料

    要分析,第一步肯定是收集数据,这里不可能一下子就得到所有词的集合,最常见的方法是自己。。。。。。。。。。。。。。。。。。。。

    展开全文
  • 说实话,我不太明白对关键词聚类跟新闻推荐有什么联系,不过他说什么我照就是了。 按照一般的思路,可以用新闻ID向量来表示某个关键词,这就像广告推荐系统里面用用户访问类别向量来表示用户一样,然后就可以用...

    继上次提取关键词之后,项目组长又要求我对关键词进行聚类。说实话,我不太明白对关键词聚类跟新闻推荐有什么联系,不过他说什么我照做就是了。

    按照一般的思路,可以用新闻ID向量来表示某个关键词,这就像广告推荐系统里面用用户访问类别向量来表示用户一样,然后就可以用kmeans的方法进行聚类了。不过对于新闻来说存在一个问题,那就量太大,如果给你十万篇新闻,那每一个关键词将需要十万维的向量表示,随着新闻数迅速增加,那维度就更大了,这计算起来难度太大。于是,这个方法思路简单但是不可行。

    好在我们有word2vec这个工具,这是google的一个开源工具,能够仅仅根据输入的词的集合计算出词与词直接的距离,既然距离知道了自然也就能聚类了,而且这个工具本身就自带了聚类功能,很是强大。下面正式介绍如何使用该工具进行词的分析,关键词分析和聚类自然也就包含其中了。word2vec官网地址看这里:https://code.google.com/p/word2vec/

    1、寻找语料

    要分析,第一步肯定是收集数据,这里不可能一下子就得到所有词的集合,最常见的方法是自己写个爬虫去收集网页上的数据。不过,如果不需要实时性,我们可以使用别人提供好的网页数据,例如搜狗2012年6月到7月的新闻数据:http://www.sogou.com/labs/dl/ca.html 直接下载完整版,注册一个帐号,然后用ftp下载,ubuntu下推荐用filezilla





    下载得到的数据有1.5G



    2、分词

    我们得到的1.5的数据是包含一些html标签的,我们只需要新闻内容,也就是content其中的值。首先可以通过简单的命令把非content的标签干掉

    1. cat news_tensite_xml.dat | iconv -f gbk -t utf-8 -c | grep "<content>"  > corpus.txt  

    得到了corpus.txt文件只含有content标签之间的内容,再对内容进行分词即可,这里推荐使用之前提到过的ANSJ,没听过的看这里:http://blog.csdn.net/zhaoxinfan/article/details/10403917

    下面是调用ANSJ进行分词的程序:

    1. import java.util.HashSet;  
    2. import java.util.List;  
    3. import java.util.Set;  
    4. import java.io.BufferedReader;  
    5. import java.io.BufferedWriter;  
    6. import java.io.File;  
    7. import java.io.FileInputStream;  
    8. import java.io.FileReader;  
    9. import java.io.FileWriter;  
    10. import java.io.IOException;  
    11. import java.io.InputStreamReader;  
    12. import java.io.PrintWriter;  
    13. import java.io.StringReader;  
    14. import java.util.Iterator;  
    15.   
    16. import love.cq.util.IOUtil;  
    17.   
    18. import org.ansj.app.newWord.LearnTool;  
    19. import org.ansj.domain.Term;  
    20. import org.ansj.recognition.NatureRecognition;  
    21. import org.ansj.splitWord.Analysis;  
    22. import org.ansj.splitWord.analysis.NlpAnalysis;  
    23. import org.ansj.splitWord.analysis.ToAnalysis;  
    24. import org.ansj.util.*;  
    25. import org.ansj.recognition.*;  
    26.   
    27.   
    28. public class test {  
    29.     public static final String TAG_START_CONTENT = "<content>";  
    30.     public static final String TAG_END_CONTENT = "</content>";  
    31.       
    32.     public static void main(String[] args) {  
    33.         String temp = null ;  
    34.           
    35.         BufferedReader reader = null;  
    36.         PrintWriter pw = null;  
    37.         try {  
    38.             reader = IOUtil.getReader("corpus.txt""UTF-8") ;  
    39.             ToAnalysis.parse("test 123 孙") ;  
    40.             pw = new PrintWriter("resultbig.txt");  
    41.             long start = System.currentTimeMillis()  ;  
    42.             int allCount =0 ;  
    43.             int termcnt = 0;  
    44.             Set<String> set = new HashSet<String>();  
    45.             while((temp=reader.readLine())!=null){  
    46.                 temp = temp.trim();  
    47.                 if (temp.startsWith(TAG_START_CONTENT)) {  
    48.                     int end = temp.indexOf(TAG_END_CONTENT);  
    49.                     String content = temp.substring(TAG_START_CONTENT.length(), end);  
    50.                     //System.out.println(content);  
    51.                     if (content.length() > 0) {  
    52.                         allCount += content.length() ;  
    53.                         List<Term> result = ToAnalysis.parse(content);  
    54.                         for (Term term: result) {  
    55.                             String item = term.getName().trim();  
    56.                             if (item.length() > 0) {  
    57.                                 termcnt++;  
    58.                                 pw.print(item.trim() + " ");  
    59.                                 set.add(item);  
    60.                             }  
    61.                         }  
    62.                         pw.println();  
    63.                     }  
    64.                 }  
    65.             }  
    66.             long end = System.currentTimeMillis() ;  
    67.             System.out.println("共" + termcnt + "个term," + set.size() + "个不同的词,共 "  
    68.                     +allCount+" 个字符,每秒处理了:"+(allCount*1000.0/(end-start)));  
    69.         } catch (IOException e) {   
    70.             e.printStackTrace();  
    71.         } finally {  
    72.             if (null != reader) {  
    73.                 try {  
    74.                     reader.close();  
    75.                 } catch (IOException e) {  
    76.                     e.printStackTrace();  
    77.                 }  
    78.             }  
    79.             if (null != pw) {  
    80.                 pw.close();  
    81.             }  
    82.         }  
    83.     }  
    84. }  

    经过对新闻内容分词之后,得到的输出文件resultbig.txt有2.2G,其中的格式如下:


    这个文件就是word2vec工具的输入文件


    3、本地运行word2vec进行分析

    首先要做的肯定是从官网上下载word2vec的源码:http://word2vec.googlecode.com/svn/trunk/ ,然后把其中makefile文件的.txt后缀去掉,在终端下执行make操作,这时能发现word2vec文件夹下多了好几个东西。接下来就是输入resultbig.txt进行分析了:

    1. ./word2vec -train resultbig.txt -output vectors.bin -cbow 0 -size 200 -window 5 -negative 0 -hs 1 -sample 1e-3 -threads 12 -binary 1  

    这里我们指定输出为vectors.bin文件,显然输出到文件便于以后重复利用,省得每次都要计算一遍,要知道处理这2.2G的词集合需要接近半个小时的时间:




    下面再输入计算距离的命令即可计算与每个词最接近的词了:

    1. ./distance vectors.bin  

    这里列出一些有意思的输出:





    怎么样,是不是觉得还挺靠谱的?补充一点,由于word2vec计算的是余弦值,距离范围为0-1之间,值越大代表这两个词关联度越高,所以越排在上面的词与输入的词越紧密。

    至于聚类,只需要另一个命令即可:

    1. ./word2vec -train resultbig.txt -output classes.txt -cbow 0 -size 200 -window 5 -negative 0 -hs 1 -sample 1e-3 -threads 12 -classes 500  

    按类别排序:

    1. sort classes.txt -k 2 -n > classes.sorted.txt  



    后记:如果想要了解word2vec的实现原理,应该读一读官网后面的三篇参考文献。显然,最主要的应该是这篇: Distributed Representations of Words and Phrases and their Compositionality  

    这篇文章的基础是 Natural Language Processing (almost) from Scratch 其中第四部分提到了把deep learning用在NLP上。

    展开全文
  • 说实话,我不太明白对关键词聚类跟新闻推荐有什么联系,不过他说什么我照就是了。 按照一般的思路,可以用新闻ID向量来表示某个关键词,这就像广告推荐系统里面用用户访问类别向量来表示用户一样,然后就可以用...

    继上次提取关键词之后,项目组长又要求我对关键词进行聚类。说实话,我不太明白对关键词聚类跟新闻推荐有什么联系,不过他说什么我照做就是了。

    按照一般的思路,可以用新闻ID向量来表示某个关键词,这就像广告推荐系统里面用用户访问类别向量来表示用户一样,然后就可以用kmeans的方法进行聚类了。不过对于新闻来说存在一个问题,那就量太大,如果给你十万篇新闻,那每一个关键词将需要十万维的向量表示,随着新闻数迅速增加,那维度就更大了,这计算起来难度太大。于是,这个方法思路简单但是不可行。

    好在我们有word2vec这个工具,这是google的一个开源工具,能够仅仅根据输入的词的集合计算出词与词直接的距离,既然距离知道了自然也就能聚类了,而且这个工具本身就自带了聚类功能,很是强大。下面正式介绍如何使用该工具进行词的分析,关键词分析和聚类自然也就包含其中了。word2vec官网地址看这里:https://code.google.com/p/word2vec/

    1、寻找语料

    要分析,第一步肯定是收集数据,这里不可能一下子就得到所有词的集合,最常见的方法是自己写个爬虫去收集网页上的数据。不过,如果不需要实时性,我们可以使用别人提供好的网页数据,例如搜狗2012年6月到7月的新闻数据:http://www.sogou.com/labs/dl/ca.html 直接下载完整版,注册一个帐号,然后用ftp下载,ubuntu下推荐用filezilla





    下载得到的数据有1.5G



    2、分词

    我们得到的1.5的数据是包含一些html标签的,我们只需要新闻内容,也就是content其中的值。首先可以通过简单的命令把非content的标签干掉

    1. cat news_tensite_xml.dat | iconv -f gbk -t utf-8 -c | grep "<content>"  > corpus.txt  

    得到了corpus.txt文件只含有content标签之间的内容,再对内容进行分词即可,这里推荐使用之前提到过的ANSJ,没听过的看这里:http://blog.csdn.net/zhaoxinfan/article/details/10403917

    下面是调用ANSJ进行分词的程序:

    1. import java.util.HashSet;  
    2. import java.util.List;  
    3. import java.util.Set;  
    4. import java.io.BufferedReader;  
    5. import java.io.BufferedWriter;  
    6. import java.io.File;  
    7. import java.io.FileInputStream;  
    8. import java.io.FileReader;  
    9. import java.io.FileWriter;  
    10. import java.io.IOException;  
    11. import java.io.InputStreamReader;  
    12. import java.io.PrintWriter;  
    13. import java.io.StringReader;  
    14. import java.util.Iterator;  
    15.   
    16. import love.cq.util.IOUtil;  
    17.   
    18. import org.ansj.app.newWord.LearnTool;  
    19. import org.ansj.domain.Term;  
    20. import org.ansj.recognition.NatureRecognition;  
    21. import org.ansj.splitWord.Analysis;  
    22. import org.ansj.splitWord.analysis.NlpAnalysis;  
    23. import org.ansj.splitWord.analysis.ToAnalysis;  
    24. import org.ansj.util.*;  
    25. import org.ansj.recognition.*;  
    26.   
    27.   
    28. public class test {  
    29.     public static final String TAG_START_CONTENT = "<content>";  
    30.     public static final String TAG_END_CONTENT = "</content>";  
    31.       
    32.     public static void main(String[] args) {  
    33.         String temp = null ;  
    34.           
    35.         BufferedReader reader = null;  
    36.         PrintWriter pw = null;  
    37.         try {  
    38.             reader = IOUtil.getReader("corpus.txt""UTF-8") ;  
    39.             ToAnalysis.parse("test 123 孙") ;  
    40.             pw = new PrintWriter("resultbig.txt");  
    41.             long start = System.currentTimeMillis()  ;  
    42.             int allCount =0 ;  
    43.             int termcnt = 0;  
    44.             Set<String> set = new HashSet<String>();  
    45.             while((temp=reader.readLine())!=null){  
    46.                 temp = temp.trim();  
    47.                 if (temp.startsWith(TAG_START_CONTENT)) {  
    48.                     int end = temp.indexOf(TAG_END_CONTENT);  
    49.                     String content = temp.substring(TAG_START_CONTENT.length(), end);  
    50.                     //System.out.println(content);  
    51.                     if (content.length() > 0) {  
    52.                         allCount += content.length() ;  
    53.                         List<Term> result = ToAnalysis.parse(content);  
    54.                         for (Term term: result) {  
    55.                             String item = term.getName().trim();  
    56.                             if (item.length() > 0) {  
    57.                                 termcnt++;  
    58.                                 pw.print(item.trim() + " ");  
    59.                                 set.add(item);  
    60.                             }  
    61.                         }  
    62.                         pw.println();  
    63.                     }  
    64.                 }  
    65.             }  
    66.             long end = System.currentTimeMillis() ;  
    67.             System.out.println("共" + termcnt + "个term," + set.size() + "个不同的词,共 "  
    68.                     +allCount+" 个字符,每秒处理了:"+(allCount*1000.0/(end-start)));  
    69.         } catch (IOException e) {   
    70.             e.printStackTrace();  
    71.         } finally {  
    72.             if (null != reader) {  
    73.                 try {  
    74.                     reader.close();  
    75.                 } catch (IOException e) {  
    76.                     e.printStackTrace();  
    77.                 }  
    78.             }  
    79.             if (null != pw) {  
    80.                 pw.close();  
    81.             }  
    82.         }  
    83.     }  
    84. }  

    经过对新闻内容分词之后,得到的输出文件resultbig.txt有2.2G,其中的格式如下:


    这个文件就是word2vec工具的输入文件


    3、本地运行word2vec进行分析

    首先要做的肯定是从官网上下载word2vec的源码:http://word2vec.googlecode.com/svn/trunk/ ,然后把其中makefile文件的.txt后缀去掉,在终端下执行make操作,这时能发现word2vec文件夹下多了好几个东西。接下来就是输入resultbig.txt进行分析了:

    1. ./word2vec -train resultbig.txt -output vectors.bin -cbow 0 -size 200 -window 5 -negative 0 -hs 1 -sample 1e-3 -threads 12 -binary 1  

    这里我们指定输出为vectors.bin文件,显然输出到文件便于以后重复利用,省得每次都要计算一遍,要知道处理这2.2G的词集合需要接近半个小时的时间:




    下面再输入计算距离的命令即可计算与每个词最接近的词了:

    1. ./distance vectors.bin  

    这里列出一些有意思的输出:





    怎么样,是不是觉得还挺靠谱的?补充一点,由于word2vec计算的是余弦值,距离范围为0-1之间,值越大代表这两个词关联度越高,所以越排在上面的词与输入的词越紧密。

    至于聚类,只需要另一个命令即可:

    1. ./word2vec -train resultbig.txt -output classes.txt -cbow 0 -size 200 -window 5 -negative 0 -hs 1 -sample 1e-3 -threads 12 -classes 500  

    按类别排序:

    1. sort classes.txt -k 2 -n > classes.sorted.txt  



    后记:如果想要了解word2vec的实现原理,应该读一读官网后面的三篇参考文献。显然,最主要的应该是这篇: Distributed Representations of Words and Phrases and their Compositionality  

    这篇文章的基础是 Natural Language Processing (almost) from Scratch 其中第四部分提到了把deep learning用在NLP上。

    最后感谢晓阳童鞋向我提到这个工具,不愧是立志要成为NLP专家的人。


    附:一个在线测试的网站,貌似是一位清华教授做的:http://cikuapi.com/index.php

    展开全文
  • 我们来看一下上次推文出来的关键词共现图谱: 人工不好归纳!那怎么聚类呢? 此时便可使用CiteSpace的聚类功能啦! 如下所示:我们可以清晰地看到上边的关键词共现网络聚成了一个个不规则区域...
  • 谈谈我过的关键词聚类

    千次阅读 2014-06-02 20:16:03
    看到知乎有这样的问题,如何聚类,恰好我以前过,但是想想内容太多,还是单独写一篇说一下。 首先,如果单纯拿出一堆词就让我分类,这个我真不到,我不知道有没有人能做到,反正我不到。做关键词分类...
  • 本文以CiteSpace软件关键词聚类分析为例,进行关键词聚类图谱含义详细解析。回顾上一次推文:CiteSpace关键词共现图谱含义详细解析其中有一句:当你人工已经可以很容易的进行归纳后,就不需要再利用CiteSpace...
  • 最近工作忙得紧,又开始设计用户画像项目,又要需求,所以博客有一段时间没有更新了,今天刚写完了一大波需求,所以也就抽出一点时间分享一些DSL 在开源这些方法对最开始,先定义几个全局变量,后面对方法中会用到...
  • [size=large]昨天抽了几个小时将其完,广告效果居然还不错:) 截图几张,作为纪念. 更多演示页面存档点此下载[url]http://www.summerschool2008.cn/file/adv.7z[/url] 论文见附件 [img]...
  • 聚类

    2014-03-18 18:19:00
    说实话,我不太明白对关键词聚类跟新闻推荐有什么联系,不过他说什么我照就是了。 按照一般的思路,可以用新闻ID向量来表示某个关键词,这就像广告推荐系统里面用用户访问类别向量来表示用户一样,然后就可以用...
  • 这里我们以前边分类技术中的语料“运动”类别作为聚类的语料,原因是这份语料不是很纯,抽取出的关键词和“农业”类很相关同时还跟“教育”类相关,我们在这里使用增量聚类先把“运动”类下的文本做聚类,...
  • 为准确了解我国转型升级的研究热点,及时把握该领域的研究动态,在收集CSSCI期刊中2005年1月—2014年10月有关转型升级论文的基础上,将其关键词进行整理归类,并运用Ucinet 6.216对关键词网络进一步分析。结果显示,目前...
  • 1.关键词提取关键词指的是原始文档的和核心信息,关键词提取在文本聚类、分类、自动摘要等领域中有着重要的作用。针对一篇语段,在不加人工干预的情况下提取出其关键词首先进行分词处理关键词分配:事先给定关键词库...
  • 要求:爬取电影相关数据,条数不小于1000,结构自定,要求包含情感信息,类别,评论关键词等,然后基于这些信息根据用户的喜好相关性聚类。 一、总体设计 (1)爬取豆瓣电影中的50部电影数据,包括片名、国家、时...
  • 本文以CiteSpace软件关键词时间线图谱分析为例,进行关键词聚类图谱含义详细解析。 回顾上几次推文: CiteSpace关键词共现图谱含义详细解析 CiteSpace关键词聚类图谱含义详细解析 CiteSpace的时区图谱含义详细...
  • 推荐引擎算法学习导论:协同过滤、聚类、分类 作者:July 出处:结构之法算法之道 引言 昨日看到几个关键词:语义分析,协同过滤,智能推荐,想着想着便兴奋了。于是昨天下午开始到今天凌晨3点,便研究了...
  • 我们有一堆文章及文章标题,我们想对这些文章聚类,相同知识点的文章聚在一起,我们可以采用奇异值分解的方法来实现。 基本思想 构建关键词的集合 构建以行为关键词出现次数、列为关键词的二维数组 对二维数组...
  • 关注公众号【学术点滴】获取更多资讯本文以CiteSpace软件关键词聚类分析为例,进行关键词聚类图谱含义详细解析。回顾上一次推文:CiteSpace关键词共现图谱含义详细解析其中有一句:当你人工已经可以很容易的进行...
  • 方法1:基于搜索的关键词 地名(用户输入的终点)进行文本聚类。然后将地名进行经纬度转换,即可找到热点区域。 方法2:基于用户终点的坐标。 方法1:对于搜索的人来说,太熟悉不过,一个hash map就可以搞定...
  • 关键词提取算法

    2013-09-02 19:14:00
    摘要:昨天给大家演示简单的文本聚类,但要给每个聚类再提取一两个关键词用于表示该聚类。我们还是用TFIDF算法来,因为这是比较简单的提取特征算法,不过这里的TF是指某词在本聚类内所有文章的词频,而不是本文章...
  • 昨天给大家演示简单的文本聚类,但要给每个聚类再提取一两个关键词用于表示该聚类。我们还是用TFIDF算法来,因为这是比较简单的提取特征算法,不过这里的TF是指某词在本聚类内所有文章的词频,而不是本文章内出现...

空空如也

空空如也

1 2 3 4
收藏数 77
精华内容 30
关键字:

关键词做聚类