精华内容
下载资源
问答
  • 文档词频统计Term Frequency (TF) and Inverse Document Frequency(IDF) are the two terms which is commonly observe in Natural Language Processing techniques. It is used to find the word occurences and ...

    文档词频统计

    Term Frequency (TF) and Inverse Document Frequency(IDF) are the two terms which is commonly observe in Natural Language Processing techniques. It is used to find the word occurences and their contribution or impact or rather we can say importance in any given sentence of a document. This techniques are more often used in sentiment classification . The retrival of information in the form of emotions from the given word is more easier when a machine knows the significance of a word. The classification of positive and negative messages conveyed from any given sentence is generally taken care of by the above techniques. We will be following few steps in order to understand the concept in a better ways.

    术语频率(TF)和逆文档频率(IDF)是在自然语言处理技术中经常观察到的两个术语。 它用于查找“出现”及其作用或影响的词,或者我们可以说它在文档的任何给定句子中的重要性。 这种技术在情感分类中更常用。 当机器知道单词的意义时,从给定单词中以情感形式检索信息会更加容易。 从任何给定句子传达的肯定和否定消息的分类通常由上述技术来处理。 我们将按照几个步骤操作,以更好地理解该概念。

    Suppose we are given a huge document given below which has many sentences and want to perform text classification and conclude using the TF and IDF techniques that what is the emotion or message that is conveyed through the below sentences.

    假设下面给出了一个巨大的文档,该文档包含许多句子,并且希望执行文本分类,并使用TF和IDF技术得出结论,即通过以下句子传达的情感或信息是什么。

    今天早上,各小组开始练习。 由男孩组成的Kabaddi队经过了1轮练习。 男孩足球队已经开始练习。男孩板球队一直在练习。 女子排球队已经准备好。女子接力比赛队成立了。 (Today morning the teams began their practice session. The boys Kabaddi team has gone through 1 round of practice. The boys football team has started practice.The boys cricket team has been doing the practice. The girls volleyball team is ready.The boys relay race team is up .)

    Step1 : Convert the sentences into bag of words

    第一步:将句子转换成单词袋

    Image for post
    https://www.123rf.com/photo_18625412_shopping-words-shape-of-shopping-bag.htmlhttps://www.123rf.com/photo_18625412_shopping-words-shape-of-shopping-bag.html

    This is the process of removing the stopwords like (is,are,they,them etc) which represent the pronoun or the words whose presence hardly contribute in classifying the meaning of the sentences. The next thing which we do is to perform the stemming operation on the given words which means coverting the words(which are in noun,verb ,adjective forms) to their base or root form. For e.g. consider the word training is getting converted into train verb that’s the base form. Now all these set of words which remain after performing the above cleaning process are collected in a list which represents the bag of words.

    这是删除表示代词或停用词的存在的停用词的过程,这些停用词表示代词或存在不多的句子的含义。 接下来要做的是对给定的单词执行词干操作,这意味着将单词(名词,动词,形容词形式)覆盖为其基本或词根形式。 例如,考虑将单词training转换为基本形式的train动词。 现在,在执行上述清洁过程之后剩余的所有这些单词集合被收集在代表单词袋的列表中。

    Bag_of_words=[‘team’ , ’boys’ , ’girls’ , ’training’ , ’kabaddi’ , ’football’ , ’cricket’ , ’volleyball’ , ’practice’ , ’round’ , ’relay’ , ’race’ , ’session’ , ‘today’ , ‘begin’ , ’go’ , ‘1’ , ‘start’ , ’ready’ , ]

    Bag_of_words = ['team','boys','girls','training','kabaddi','football','cricket','排球','practice','round','relay','race' ,“会话”,“今天”,“开始”,“开始”,“ 1”,“开始”,“就绪”,]

    Step 2 : Select Top frequency words

    步骤2:选择最高频率字词

    In the above given bag of words we take of the top 4 occuring highest frequency individual words and separate it out in the table.

    在上述给定的单词包中,我们从出现频率最高的前4个单个单词中抽取出来,并在表格中将其分开。

    Image for post

    Step 3: Calculate the Term Frequency

    步骤3:计算字词频率

    Term frequency is defined as the total frequency of any particular word in any given sentence .The formula of Term Frequency is defined as below :

    术语频率定义为任何给定句子中任何特定单词的总频率。术语频率的公式定义如下:

    Image for post

    We know that is the doc we created highlighted in yellow above has total in all 5 sentences and we calculate the occurence of top 4 high frequency words in each of these sentence.

    我们知道这是我们创建的文档(上面以黄色突出显示)在所有5个句子中都有总计,并且我们计算出每个句子中前4个高频词的出现。

    sent 1 : Today morning teams begin practice session.

    已发送1:今天上午,团队开始练习。

    sent 2 : boys Kabaddi team go 1 round practice.

    派出2名:男孩卡巴迪队参加1轮练习。

    sent 3 : boys football team start practice.

    派出3名:男孩足球队开始练习。

    sent 4 : boys cricket team practice.

    派出4名:男孩队练习。

    sent 5 : girls volleyball team ready .

    送5:女排队准备好了。

    sen 6 : boys relay race team .

    参6:男孩接力比赛队。

    Image for post

    Step 4 : Calculate the Inverse Document Frequency

    步骤4:计算逆文档的频率

    IDF gives us the measure of occurance of any particular word across all the given sentences in a document.

    IDF为我们提供了文档中所有给定句子中任何特定单词出现的度量。

    Image for post
    Image for post

    Step 5: Calculate weightage of word in a sentence

    步骤5:计算句子中单词的权重

    In this step we evaluate the impact of each word in a sentence by evaluating the product of each word Term Frequency in a sentence with the total IDF for the word.

    在此步骤中,我们通过评估一个句子中每个单词的词频与该单词的总IDF的乘积来评估句子中每个单词的影响。

    Image for post

    From the above table we can have below conclusions.

    从上表我们可以得出以下结论。

    Sentence 1 : The practice word is having more weightage indicating that the college is putting efforts in practice session.

    句子1:练习字的权重更大,表明学院正在努力进行练习。

    Sentence 2 : The boys team is preparing for the game

    句子2:男孩队正在为比赛做准备

    Sentence 3 : The boys team is preparing for the game

    句子3:男孩队正在为比赛做准备

    Sentence 4 : The boys team is practicing for game

    句子4:男孩队正在练习比赛

    Sentence 5 : The girls team is practicing for game

    句子5:女子团体正在练习比赛

    Sentence 6 : Boys team is practicing hard for game.

    句子6:男孩队正在努力练习比赛。

    And by calculating the total weightage for each of the words in the entire document it can be observed that the word boy has more weightage compared to others. Hence we can conclude that the college is focusing more on encouraging boys to compete in the upcoming competition.

    并且通过计算整个文档中每个单词的总权重,可以看出男孩这个单词比其他单词具有更大的权重。 因此,我们可以得出结论,该大学将更多的精力放在鼓励男孩参加即将到来的比赛中。

    In this way the TF and IDF helped us to identify the contribution of words in individual sentences. Also we could be able to identify that the college is focussing on which area more from the given document.

    通过这种方式,TF和IDF帮助我们确定了单个句子中单词的作用。 我们还可以从给定的文档中识别出该大学正在将重点放在哪个领域上。

    Hope this example helps you to understand things better!!

    希望这个例子可以帮助您更好地理解!!

    Thanks for reading :)

    谢谢阅读 :)

    翻译自: https://medium.com/analytics-vidhya/term-frequency-tf-and-inverse-document-frequency-idf-d3a31a5e92ea

    文档词频统计

    展开全文
  • lines.append('单词种类:' + str(len(items)) + '\n') lines.append('单词总数:' + str(sumcount) + '\n') lines.append('词频排序如下:\n') lines.append('word\tcounts\n') s = '' for i in range(len(items)): ...

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    import tkinter as tk
    import docx
    import webbrowser
    import winreg
    import win32ui
    import tkinter.messagebox
    from tkinter import *
    from tkinter import filedialog
    
    
    filePath = ''
    
    
    def get_desktop():
        key = winreg.OpenKey(winreg.HKEY_CURRENT_USER,
                             r'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders')  # 利用系统的链表
        # winreg.QueryValueEx(key, "Desktop")[0] #返回的是Unicode类型数据
        Desktop_path = str(winreg.QueryValueEx(key, "Desktop")[0])  # Unicode转化为str
        return Desktop_path
    
    
    class App:
        def __init__(self, width=500, height=300):
            self.w = width
            self.h = height
            self.title = 'count word'
            self.root = tk.Tk(className=self.title)
            self.url = tk.StringVar()
            frame_1 = tk.Frame(self.root)
            frame_2 = tk.Frame(self.root)
            frame_3 = tk.Frame(self.root)
            global label1
            play = tk.Button(frame_1, text='选择文件', font=('楷体', 12), fg='Purple', width=20, height=10, command=self.get_FileDialogPath)
            label1 = tk.Label(frame_2, text="等待您的选择~"+filePath)
            play2 = tk.Button(frame_3, text="开始", font=('楷体', 12), fg='Purple', width=2, height=1, command=self.count)
            frame_1.pack()
            frame_2.pack()
            frame_3.pack()
            play.grid(row=0, column=3, ipadx=10, ipady=10)
            play2.grid(row=0, column=3, ipadx=10, ipady=10)
            label1.grid(row=0, column=0)
    
        def count(self):
            excludes = ['the', 'and', 'to', 'of', 'i', 'a', 'in', 'it', 'that', 'is',
                        'you', 'my', 'with', 'not', 'his', 'this', 'but', 'for',
                        'me', 's', 'he', 'be', 'as', 'so', 'him', 'your', 'her', 'us', 'are']
    
            def getText():
                file = docx.Document(filePath)
                txt = '\n'.join([paragraph.text for paragraph in file.paragraphs])
                txt = txt.lower()
                txt = txt.replace('"', " ")
                for ch in "~@#$%^&*()_-+=<>?/,.:;{}[]|\'":
                    txt = txt.replace(ch, ' ')
                return txt
    
            hamletTxt = getText()
            words = hamletTxt.split()
            counts = {}
            sumcount = 0
            for word in words:
                counts[word] = counts.get(word, 0) + 1
                sumcount = sumcount + 1
    
            counts_ex = counts.copy()
            for key in counts.keys():
                if key in excludes:
                    counts_ex.pop(key)
            items = list(counts_ex.items())
            items.sort(key=lambda x: x[1], reverse=True)
            for i in range(10):
                word, count = items[i]
                print('{0:<10}{1:>5}'.format(word, count))
            window = tk.Tk()
            window.title('outcome')
            window.geometry('500x300')
            t = tk.Text(window, width=200, height=100,font=('楷体', 30))
            t.pack()
            lines = []
            lines.append('单词种类:' + str(len(items)) + '\n')
            lines.append('单词总数:' + str(sumcount) + '\n')
            lines.append('词频排序如下:\n')
            lines.append('word\tcounts\n')
            s = ''
            for i in range(len(items)):
                s = '\t'.join([str(items[i][0]), str(items[i][1])])
                s += '\n'
                lines.append(s)
            print('\n统计完成!\n')
            out = ' '.join(lines)
            t.insert('insert', out)
    
        def center(self):
            ws = self.root.winfo_screenwidth()
            hs = self.root.winfo_screenheight()
            x = int((ws / 2) - (self.w / 2))
            y = int((hs / 2) - (self.h / 2))
            self.root.geometry('{}x{}+{}+{}'.format(self.w, self.h, x, y))
    
        def loop(self):
            # 禁止修改窗口大小
            self.root.resizable(False, False)
            # 窗口居中
            self.center()
            self.root.mainloop()
    
        def get_FileDialogPath(self):
            global filePath
            dlg = win32ui.CreateFileDialog(1)  # 1表示打开文件对话框
            dlg.SetOFNInitialDir(get_desktop())  # 设置打开文件对话框中的初始显示目录
            dlg.DoModal()
            filename = dlg.GetPathName()  # 获取选择的文件名称
            filePath = filename
            label1.config(text='请确认您选择的文件:' + filePath)
            label1.pack()
    
    
    
    
    if __name__ == '__main__':
        app = App()  # 实例化APP对象
        app.loop()  # loop等待用户事件
    
    
    展开全文
  • #include <stdio.h> #include <stdlib.h>... char word[1000000]; int num; struct ku*next; }ku; int read(struct ku*tem1,FILE*fp) { int ch,i=0; while((ch=getc(fp))!=EOF) {
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    typedef struct ku
    {
        char word[1000000];
        int num;
        struct ku*next;
    }ku;
    
    int read(struct ku*tem1,FILE*fp)
    {
        int ch,i=0;
        while((ch=getc(fp))!=EOF)
        {
            while(ch<65 || (ch>90&&ch<97) || ch>122)
            {
                ch=getc(fp);
                if(ch==EOF)
                {
                    tem1->next=NULL;
                    return 0;
                }
                if((ch>64&&ch<91) || (ch>96&&ch<123))
                {
                    struct ku*tem2 = (ku*)malloc(sizeof(ku));
                    tem1->next = tem2;
                    tem1 = tem2;
                    tem1->num = 1;
                    i=0;
                }            
            }
            tem1->word[i] = ch;
            i++;
        }
    }
    
    int change(struct ku* tem2)
    {
        while(tem2 !=NULL)
        {
            for(int i = 0;i < strlen(tem2->word);i++)
            {
                if(tem2->word[i]>64&&tem2->word[i]<91)
                {   
                    tem2->word[i] += 32;
                }
            }
            tem2 = tem2->next;
        }
        return 0;
    }
    
    int count(struct ku* tem3)
    {
        while(tem3->next!=NULL)
        {
            struct ku*tem2 = tem3->next;
            while(tem2->next!=NULL)
            {
                if(strcmp(tem3->word,tem2->word) == 0)
                {
                    tem3->num++;
                    tem2->num=0;
                }
                    tem2 = tem2->next;
            }
            tem3 = tem3->next;
            while(tem3->num == 0)
            {
                tem3 = tem3->next;
            }
        }
        return 0;
    }
    
    int put(struct ku*tem4)
    {
        struct ku*tem3 = tem4;
        for(int i=0;i<100;i++)
        {
            struct ku*tem2 = tem3->next;
            while(tem2!=NULL)
            {
                if(tem2->num > tem3->num)
                {
                    tem3 = tem2;
                }
                    tem2 = tem2->next;
            }
            if(tem3->num == 0)
            {
                break;
            }
    
            printf("%s   鍑虹幇娆℃暟锛?i\n",tem3->word,tem3->num);
            if(tem4->next == NULL)
            {
                break;
            }
            tem3->num = 0;
            tem3 = tem4->next;
            tem4 = tem4->next;
        }
        return 0;
    }
    
    int main()
    {
        int j=0,i=0;
        FILE *fp;
        fp = fopen("us_constitution.txt","r");
        struct ku*start = (ku*)malloc(sizeof(ku));
        start->num = 1; 
        read(start,fp);
        change(start);
        count(start);
        put(start);
        return 0;
    }
    
    展开全文
  • 词频统计

    2019-10-05 00:59:56
    在过往的几周,编写词频统计程序的时候,无论是输入英文文章,还是通过txt的格式读取文件,进行词频统计。都会面临着一个问题,在实际应用中,大多数文章都会在word,pdf等文档中保存着,在windows中人们很少会存储...

       在过往的几周,编写词频统计程序的时候,无论是输入英文文章,还是通过txt的格式读取文件,进行词频统计。都会面临着一个问题,在实际应用中,大多数文章都会在word,pdf等文档中保存着,在windows中人们很少会存储txt文件。那么进行词频统计时,必定需要先读取。如果是word,可以像txt一样读取。那么如果文章要是在pdf中,怎么进行读取?是否应该先将pdf格式转换,然后在进行读取。还是如何操作呢?那么程序该怎样编写呢?很是困扰。上网查了些资料,pdf格式转换,要么有pdf专用的阅读器,要么是花钱将pdf格式进行转换,转换成word,进而像操作word一样进行词频统计。面对pdf格式该如何编写程序呢?以上仅个人想法。

    转载于:https://www.cnblogs.com/handsomemanwhb/p/6035837.html

    展开全文
  • 用于统计text,word,格式的文档中特定单词出现的次数。以多种表格的形式向大家直观的展示统计结果。 系统所使用到的语言及技术 后台编写使用java ,前台使用bootstrap,jquery.数据库使用metabase,图表展示及分析使用...
  • TF-IDF算法一、TF-IDF算法简介TF-IDF (词频-逆文档频次) 算法包含两部分:TF算法和IDF算法。频次:一个单词在某篇文档中出现的次数。TF算法 TF(Term Frequency)算法是统计一个词在一篇文档中出现的频次。基本思想:...
  • 词频统计工具 v3.16.zip

    2019-07-11 08:33:56
    软件功能强大,可以统计包括Word文档(.doc;.docx)、网页文件(.htm;.html)或文本文件(.txt)中所有中英文单词出现的总次数,或分别在各文件中出现的频率。值得一提是软件不仅可以统计出这些数据,还可以将这些...
  • 高考英语词频统计

    2020-03-14 11:33:06
    并保存到表格中,这样方便发给学生学习,重点注意的单词,正好他也对python感兴趣,我就简单的给他写了一个小运用,每次把要统计word文档放入data文件中就双击写好的程序可以给到Excel的单词的词频,非常的方便...
  • 1.设计一个词频统计软件,统计给定英文文章的单词频率。 2.文章中包含的标点不计入统计。 3.将统计结果以从大到小的排序方式输出。 设计: 1.因为是跨专业0.0···并不会c++和java,只能用仅学过的C语言进行编写,...
  • 中英文词频统计软件,可以统计一批Word文档(.doc;.docx)、网页文件(.htm;.html)或文本文件(.txt)中所有中英文单词出现的总次数,或分别在各文件中出现的频率。统计结果可以按出现次数排序输出为Excel表格或Word...
  • 本文实现命令行工具:对输入文件进行词频统计,显示每个词每次出现的位置,并利用不同的排序方法对其进行排序。...简单空格分词的英文文档词频统计。提供了四种排序方式可以选择。 使用方法...
  • 三行命令解决spark词频统计 如何通过三行命令解决词频统计问题 1、使用textFile加载文本 2、使用flatMap()生成以单词为键,数字1为值的RDD 3、使用reduceByKey()对所有单词进行过统计 原文档如下 命令如下 val ...
  • 通过编程实现词频统计并导出jar在终端运行创建词文件夹打开eclipse编写程序1.导入需要的jar2.创建package3.创建class编写代码导出jar打开hadoop 创建词文件夹 mkdir wordcount 进入文件夹 创建两个词文档 vim word1...
  • VC6.0的C程序#include "stdio.h" #include "ctype.h" #include "string.h" #include "stdlib.h" struct WORD{ /*定义结构体*/ char w[21]; int n; }; int main(void){ int i,j,k,l; struct WO
  • 一、语料库(Corpus)语料库是我们要分析的所有文档的集合。二、中文分词2.1 概念:中文分词(Chinese Word Segmentation):将一个汉字序列切分成一个一个单独的词。eg:我的家乡是广东省湛江市-->我/的/家乡/是/...
  • 使用前,需要在word内插入一个textbox1和一个commandbutton1,然后去掉文档中的标点符号。笔者比较懒,未加入剔除标点的代码。 理论上下述代码可以统计999个字符(含标点)的文本,如需增加文本数量,则只需要增加数...
  • TF-IDF算法一、TF-IDF算法简介TF-IDF (词频-逆文档频次) 算法包含两部分:TF算法和IDF算法。频次:一个单词在某篇文档中出现的次数。TF算法 TF(Term Frequency)算法是统计一个词在一篇文档中出现的频次。基本思想:...
  • 先将文档读入,然后全部变为小写 txt=open("English.txt","r").read() txt = txt.lower()#将英文全部变为小写 中文分词需要专门的方法: 英文分词就可以直接使用word_tokenize()进行分词 text="This is a text ...
  • // 词频统计功能,sText为字符串文本 public String NLPIR_WordFreqStat(String sText); public String NLPIR_GetLastErrorMsg(); public void NLPIR_Exit(); } private static String[] stopWords=new String...
  • 对图中的文档做分词及词频统计,然后将统计生成的excel表格和分词后的text文本存入result文件夹里。 待分词的文本: 最后生成的文档: 文件批量处理函数: 主要用到os模块为新生成的文件命名,实现批量处理 def ...
  • 能通过自定义配置文件来改变组件行为,能自定义用户词库、自动检测词库变化、支持大规模分布式环境,能灵活指定多种分词算法,能使用refine功能灵活控制分词结果,还能使用词频统计、词性标注、同义标注、反义标注、...
  • NLP训练数据都是中文,不能直接喂传统机器学习模型,此时我们需要将中文文本数字化。如何将文本数字化是NLP领域的基础工作...其中典型的技术有词袋模型、TF-IDF(词频文档频率)模型。1.1 词袋模型(bag of words...
  • 一、 功能概述关键词词频&网络图是以股票论坛、 个股新闻、研究报告三个网站作为数据源,以...关键词词频统计功能是: 对于给定的关键词(Word)以及给定的股票代码(Ticker)在一定的时间范围[StartDate,EndDate...
  • tf为词频 idf为逆文档频率 #引入包 import numpy as np import pandas as pd #定义数据和预处理 docA= "The cat sat on my bed" docB= "The dog sat on my knees" #词袋 bowA = docA.split(" ") bowB = docB.split...
  • 全局矩阵分解的方法:比如LSA,HAL,这类方法首先统计语料库中的“词-文档”或者“词-词”共现矩阵,然后通过矩阵分解的方法来获得一个低维词向量。 局部上下文窗口的方法,:比如skip-gram 但是这两种方法...
  • Hadoop综合大作业

    2018-05-25 13:10:00
    一、用Hive对爬虫大作业产生的文本文件(或者英文词频统计下载的英文长篇小说)词频统计。 1、启动hadoop ...2、hdfs上创建文件夹并查看 ...3、上传英文词频统计文本至...7、用HQL进行词频统计,结果放在表k_word...
  • Hadoop 综合大作业

    2018-05-25 18:07:00
    1.用Hive对爬虫大作业产生的文本文件(或者英文词频统计下载的英文长篇小说)词频统计。 启动hadoop 用hdfs创建文件夹 ...进行词频统计,结果放在表word_coune里: 查看统计结果: ...

空空如也

空空如也

1 2 3 4 5 6
收藏数 109
精华内容 43
关键字:

word文档词频统计