⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 textstat.pyw

📁 documents classification and words statiscs TF/IDF etc
💻 PYW
📖 第 1 页 / 共 4 页
字号:
        optFrame3.pack(fill=X, padx=5)        self.maxFreq = StringVar()        self.maxFreq.set(cfg['freqMax'])        Spinbox(optFrame3, width=5, textvariable=self.maxFreq, values=('---',1,2,3,4,5,10,25,50,100,250,500,750,1000,2500,5000,10000)).pack(side=LEFT, anchor=W)        Label(optFrame3, text=s['FTmaxFreq']).pack(side=LEFT, padx=5)        self.grosskleinFreq = IntVar()        Checkbutton(optFrame, text=s['FTignGross'], variable=self.grosskleinFreq).pack(pady=10, anchor=W)        self.suchFreq = StringVar()        Label(optFrame, text=s['FTsuchFreq'], justify=LEFT).pack(anchor=W, padx=5)        self.suchFreqEntry = Entry(optFrame, textvariable=self.suchFreq)        self.suchFreqEntry.pack(anchor=W, padx=5)        self.suchFreqEntry.bind('<Return>', self.zeigWortfrequenz)        Button(optFrame, text=s['FTfreqliste'], command=self.zeigWortfrequenz).pack(anchor=W, padx=5, pady=10)    def FormenTabPopup(self, event):        self.FormenPopupMenu = Menu(self.root, tearoff=0)        self.FormenPopupMenu.add_command(label=s['FTkopieren'], command=self.copy2clipboard)        self.FormenPopupMenu.add_command(label=s['FTsuchKonk'], command=self.zeigKonkordanz)        self.FormenPopupMenu.add_command(label=s['FTzeigInfo'], command=self.zeigFormInfo)        self.FormenPopupMenu.tk_popup(*self.root.winfo_pointerxy())    def machKonkordanzTab(self):        frame=self.tabPages.pages[s['ConcTab']]['page']        suchFrame = Frame(frame)        suchFrame.pack(fill=X, padx=10, pady=5)        self.suchwort = Entry(suchFrame, width=40, takefocus=1)        self.suchwort.pack(side=LEFT)        self.suchwort.bind("<Return>", self.zeigKonkordanz)        Button(suchFrame, text=s['CTsuchen'], takefocus=1, command=self.zeigKonkordanz).pack(side=LEFT, padx=5, pady=10)        Button(suchFrame, text=s['CTmachQuery'], command=self.QueryDialog).pack(anchor=W, padx=20, pady=10)        listframe = Frame(frame)        listframe.pack(expand=YES, fill=BOTH, side=LEFT, padx=5, pady=5)        self.konkliste = MultiListBox.MultiListbox(listframe, ((s['ConcTab'], 60),),                            command=self.zeigZitat, borderwidth=1, height=20)        self.konkliste.pack(side=LEFT, fill=BOTH, expand=YES)        for l in self.konkliste.lists:            l.bind('<Enter>', self.statusAktualisieren)            l.bind('<Button-3>', self.KonkTabPopup)            l.bind('<Double-Button-1>', self.zeigZitat)        optFrame = LabelFrame(frame, text=s['CTOptionen'])        optFrame.pack(fill=X, padx=5, pady=5)        self.konkGanzewoerter = IntVar()        Checkbutton(optFrame, text=s['CTganzWort'], variable=self.konkGanzewoerter).pack(anchor=W)        self.konkGrossklein = IntVar()        self.konkGrosskleinCheckbutton = Checkbutton(optFrame, text=s['CTignGross'], variable=self.konkGrossklein)        self.konkGrosskleinCheckbutton.pack(anchor=W)        self.markKonk = IntVar()        Checkbutton(optFrame, text=s['CTmarkSuch'], variable=self.markKonk).pack(anchor=W)        optFrame2 = Frame(optFrame)        optFrame2.pack(fill=X, padx=5, pady=10)        optFrame2a = Frame(optFrame2)        optFrame2a.pack(fill=BOTH)        self.konkContextL = StringVar()        self.konkContextL.set(cfg['konkContextL'])        Spinbox(optFrame2a, width=4, textvariable=self.konkContextL, from_=10, to=100, increment=10).pack(side=LEFT, anchor=W)        Label(optFrame2a, text=s['CTcontextL']).pack(side=LEFT, padx=5)        optFrame2b = Frame(optFrame2)        optFrame2b.pack(fill=BOTH)        self.konkContextR = StringVar()        self.konkContextR.set(cfg['konkContextR'])        Spinbox(optFrame2b, width=4, textvariable=self.konkContextR, from_=10, to=100, increment=10).pack(side=LEFT, anchor=W)        Label(optFrame2b, text=s['CTcontextR']).pack(side=LEFT, padx=5)        self.sortModusKonk = StringVar()        Radiobutton(optFrame, text=s['CTsortAlpha'], value='alpha', variable=self.sortModusKonk).pack(anchor=W)        Radiobutton(optFrame, text=s['CTsortR'], value='rechts', variable=self.sortModusKonk).pack(anchor=W)        Radiobutton(optFrame, text=s['CTsortL'], value='links', variable=self.sortModusKonk).pack(anchor=W)        self.sortModusKonk.set('alpha')        Button(optFrame, text=s['CTaktualisier'], command=self.zeigKonkordanz).pack(anchor=W, padx=5, pady=10)    def KonkTabPopup(self, event):        self.KonkPopupMenu = Menu(self.root, tearoff=0)        self.KonkPopupMenu.add_command(label=s['CTkopieren'], command=self.copy2clipboard)        self.KonkPopupMenu.add_command(label=s['CTzeigZitat'], command=self.zeigZitat)        self.KonkPopupMenu.tk_popup(*self.root.winfo_pointerxy())    def machZitatTab(self):        frame=self.tabPages.pages[s['ZitatTab']]['page']        Label(frame, text=s['ZTinfo']).pack(padx=10, pady=10)        txtframe = Frame(frame)        txtframe.pack(expand=YES, fill=BOTH, side=LEFT, padx=5, pady=5)        scrollbar = Scrollbar(txtframe, orient=VERTICAL)        self.zitat = Text(txtframe, borderwidth=1, wrap=WORD, selectbackground='lightsteelblue', selectforeground='black', yscrollcommand=scrollbar.set)        scrollbar.config(command=self.zitat.yview)        scrollbar.pack(side=RIGHT, fill=Y, padx=0)        self.zitat.pack(side=LEFT, expand=YES, fill=BOTH, padx=0)        self.zitat.tag_configure('blau', foreground='blue', underline=1)        self.zitat.tag_configure('rot', foreground='red')        self.zitat.tag_bind('oeffnen', '<Double-Button-1>', self.zitatDatei_oeffnen)        self.zitat.bind('<Button-3>', self.ZitatTabPopup)        self.zitat.config(cursor='arrow')        self.zitat.insert(END, s['ZTInit'])    def ZitatTabPopup(self, event):        self.ZitatPopupMenu = Menu(self.root, tearoff=0)        self.ZitatPopupMenu.add_command(label=s['ZTkopieren'], command=self.copy2clipboard)        self.ZitatPopupMenu.add_command(label=s['ZToeffnen'], command=self.zitatDatei_oeffnen)        self.ZitatPopupMenu.tk_popup(*self.root.winfo_pointerxy())    def WebDialog(self):        try:            self.wd.focus_set()        except:            self.wd = Toplevel(self.root)            self.wd.title("Web2corpus - TextSTAT WebSpider")            frame = Frame(self.wd)            frame.pack(expand=YES, fill=BOTH, padx=10, pady=10)            Label(frame, justify=LEFT, text=s['WDinfo']).pack(anchor=W, padx=10, pady=5)            self.webUrl = StringVar()            url = Entry(frame, width=50, textvariable=self.webUrl)            url.pack(anchor=W, padx=10, pady=5)            Label(frame, text=s['WDfrageSeiten']).pack(anchor=W, padx=10, pady=5)            frame1 = Frame(frame)            frame1.pack(expand=YES, fill=BOTH)            self.webAnzahl = StringVar()            self.webAnzahl.set('1')            Spinbox(frame1, width=5, textvariable=self.webAnzahl, values=(1,10,25,50,100,250,500,750,1000)).pack(side=LEFT, anchor=W, padx=10, pady=5)            Label(frame1, text=s['WDanzahl']).pack(side=LEFT)            self.webBasis = StringVar()            self.webBasis.set('server')            Radiobutton(frame, text=s['WDinSubdir'], value='subdir', variable=self.webBasis).pack(anchor=W, padx=10 )            Radiobutton(frame, text=s['WDaufServer'], value='server', variable=self.webBasis).pack(anchor=W, padx=10 )            Button(frame, text=s['WDok'], width=10, command=self.htmlFile_hinzu).pack(side=LEFT, padx=10, pady=10)            Button(frame, text=s['WDcancel'], width=10, command=self.wd.destroy).pack(side=RIGHT, padx=10, pady=10)            url.focus_set()    def NewsDialog(self):        try:            self.nd.focus_set()        except:            self.nd = Toplevel(self.root)            self.nd.title("News2corpus - TextSTAT NewsGrabber")            frame = Frame(self.nd)            frame.pack(expand=YES, fill=BOTH, padx=10, pady=10)            Label(frame, justify=LEFT, text=s['NDinfo']).pack(anchor=W, padx=10, pady=5)            frame1 = Frame(frame)            frame1.pack(expand=YES, fill=BOTH)            self.newsServer = StringVar()            Entry(frame1, width=40, textvariable=self.newsServer).pack(side=LEFT, anchor=W, padx=10, pady=5)            Label(frame1, text=s['NDserver']).pack(side=LEFT, padx=10, pady=5)            frame2 = Frame(frame)            frame2.pack(expand=YES, fill=BOTH)            self.newsGruppe = StringVar()            Entry(frame2, width=40, textvariable=self.newsGruppe).pack(side=LEFT, anchor=W, padx=10, pady=5)            Label(frame2, text=s['NDgruppe']).pack(side=LEFT, padx=10, pady=5)            frame3 = Frame(frame)            frame3.pack(expand=YES, fill=BOTH)            self.newsAnzahl = StringVar()            self.newsAnzahl.set('50')            Spinbox(frame3, width=5, textvariable=self.newsAnzahl, values=(1,10,25,50,100,250,500,750,1000)).pack(side=LEFT, anchor=W, padx=10, pady=5)            Label(frame3, text=s['NDanzahl']).pack(side=LEFT)            self.newsZitate = IntVar()            self.newsZitate.set(1)            Checkbutton(frame3, text=s['NDzitWeg'], variable=self.newsZitate).pack(side=LEFT, padx=20)            Button(frame, text=s['NDok'], width=10, command=self.newsgroup_hinzu).pack(side=LEFT, padx=10, pady=10)            Button(frame, text=s['NDcancel'], width=10, command=self.nd.destroy).pack(side=RIGHT, padx=10, pady=10)            self.nd.focus_set()    def QueryDialog(self):        try:            self.qd.focus_set()        except:            self.qd = Toplevel(self.root)            self.qd.title("TextSTAT QueryEditor")            frame = Frame(self.qd)            frame.pack(expand=YES, fill=BOTH, padx=10, pady=10)            Label(frame, justify=LEFT, text=s['QDinfo'], fg='blue').pack(anchor=W, padx=5, pady=15)            frame1 = LabelFrame(frame, text=s['QDsuchFelder'])            frame1.pack(fill=BOTH, expand=YES)            frame1a = Frame(frame1)            frame1a.pack(expand=YES, fill=BOTH)            self.qAusdruck1 = Entry(frame1a)            self.qAusdruck1.pack(side=LEFT, anchor=W, padx=5, pady=5)            Label(frame1a, text=s['QAusdruck1']).pack(side=LEFT, padx=5, pady=5)            frame1b = Frame(frame1)            frame1b.pack(expand=YES, fill=BOTH)            self.qAusdruck2 = Entry(frame1b)            self.qAusdruck2.pack(side=LEFT, anchor=W, padx=5, pady=5)            Label(frame1b, text=s['QAusdruck2']).pack(side=LEFT, padx=5, pady=5)            frame2 = LabelFrame(frame, text=s['QAbstand'])            frame2.pack(fill=BOTH, expand=YES, pady=30)            self.qAbstandMin = Spinbox(frame2, width=5, from_=0, to=10)            self.qAbstandMin.pack(side=LEFT, anchor=W, padx=5, pady=5)            Label(frame2, text=s['QAbstandMin']).pack(side=LEFT, padx=5, pady=5)            self.qAbstandMax = Spinbox(frame2, width=5, from_=0, to=10)            self.qAbstandMax.pack(side=LEFT, anchor=W, padx=5, pady=5)            Label(frame2, text=s['QAbstandMax']).pack(side=LEFT, padx=5, pady=5)            Button(frame, text=s['QmachAusdruck'], command=self.query_machen).pack(side=LEFT, padx=10, pady=10)            Button(frame, text=s['QDcancel'], width=10, command=self.qd.destroy).pack(side=RIGHT, padx=10, pady=10)            self.qd.bind("<Return>", self.query_machen)            self.qAusdruck1.focus_set()    def query_machen(self, event=''):        a1 = self.qAusdruck1.get()        a1 = a1.replace('*', '\w*')        a1 = a1.replace('?', '\w')        a2 = self.qAusdruck2.get()        a2 = a2.replace('*', '\w*')        a2 = a2.replace('?', '\w')        ab1 = self.qAbstandMin.get()        ab2 = self.qAbstandMax.get()        if a1 == '' and a2 == '':            self.warnung(titel=s['Error'], text=s['ErrQuery'])            self.qAusdruck1.focus_set()            return        if ab1 == '0' and ab2 == '0':            such = "%s\W+%s" % (a1, a2)        else:            such = "%s(\W+\w+){%s,%s}\W+%s" % (a1, ab1, ab2, a2)        self.busyCursorOn()        self.suchwort.delete(0, END)        self.suchwort.insert(END, such)        self.konkGrossklein.set(1)        self.konkGanzewoerter.set(1)        self.zeigKonkordanz()        self.busyCursorOff()    def TextDialog(self, text='', titel='TextSTAT'):        try:            self.td.focus_set()        except:            self.td = Toplevel(self.root)            self.td.transient(self.root)            self.td.title(titel)            self.td.geometry('600x400+50+50')            frame = Frame(self.td)            frame.pack(expand=YES, fill=BOTH)            scrollbar = Scrollbar(frame, orient=VERTICAL)            txt = Text(frame, borderwidth=1, height=15, wrap=WORD, font=(('Courier', 'New'), '9'), yscrollcommand=scrollbar.set)            scrollbar.config(command=txt.yview)            scrollbar.pack(side=RIGHT, fill=Y, padx=0)            txt.pack(side=LEFT, expand=YES, fill=BOTH)            Button(self.td, text=' OK ', command=self.td.destroy).pack(pady=10)            txt.insert(END, text)            self.td.focus_set()    def zeigHistory(self):        f = os.path.join(SkriptDir, 'History.txt')        text = open(f).read()        t = s['Titel'] + ' - ' + s['History']        self.TextDialog(text=text, titel=t)    def zeigLicense(self):        f = os.path.join(SkriptDir, 'License.txt')        text = open(f).read()        t = s['Titel'] + ' - ' + s['License']        self.TextDialog(text=text, titel=t)    # Das Korpus    # Dictionary von Dictionaries, der Dateipfad dient als Key    # Format: db[dateipfad] = {'path':f, 'file':ff}    # ansprechen als z.B.: self.korpus[dateipfad]['file']    # ACHTUNG: in fruehen Versionen war das eine Liste von Listen [dateiname, datei]    def korpus_new(self):        # Wenn anderes Korpus ge鰂fnet ist        if self.korpus != None and self.korpus.dbGeaendert == 1:             jn = tkMessageBox.askquestion(s['KorpusSave'], s['AbfrageSave'])            if jn == 'yes':                self.korpus_save()        try:            f = tkFileDialog.asksaveasfilename(initialdir=cfg['KorpDir'], defaultextension='.crp', title=s['KorpusNew2'])            if f:                # Default-Dir neu setzen                cfg['KorpDir'] = os.path.dirname(f)                self.korpus = Korpus.Korpus(self)                self.korpus.newDb(f)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -