Jump to content
realsociedad10

Cine ma ajuta sa modific acest python script(dex,dcitionar etc)

Recommended Posts

Deci acesta este un script care lucreaza cu DEX.txt (romanesc in cazul meu).Compara dex-ul rom. cu o lista de cuvinte_mixte.txt (120mb),rezultatul apare in ''romanesti.txt'' chestia e ca rezultatul e ff slabut , asa ca as vrea sa fie modificat in asa fel incat rez. sa fie cat mai exacte,sa va dau un ex.:

 

de exemplu dex-ul contine cuv.: ''adina'' format din 5 litere,deci sa se potriveasca cu macar  4 cuv sau chiar toate 5 

 

 

Sa va dau asa un simplu exemplu nu stiu daca asta e cea mai buna solutie ,in fine ,acesta este un cod, o expresie regulata,care extrage cuv. Adina dintr-o fila cu civinte_mixte.txt-->    ^[Aa]dina.*

 

 

cuvintele din Output.txt or sa fie asa

 

adina@123

Adina01

adina#2016!@3

 

Dupa cum vedeti respecta cuvantul intreg Adina iar dupa adina poate fi orice,iar inainte Nimica!

 

Scriptul Python:

 

import sqlite3


def lungime_fisier(fisier):
    i = 0
    with open(fisier) as data:
        for line in data:
            i +=1
    return i


def creaza_bazadate(nume_baza_date):
    conn = sqlite3.connect(nume_baza_date)
    conn.execute('''CREATE TABLE IF NOT EXISTS dex
       (id INTEGER PRIMARY KEY AUTOINCREMENT,
       words VARCHAR(50) NOT NULL);''')
    conn.close()
    print "Am creat baza de date '%s'!" % nume_baza_date



def introduc_dictionar(dictionar, nume_baza_date):
    conn = sqlite3.connect(nume_baza_date)
    lungime_dictionar = lungime_fisier("dictionar.txt")
    with open(dictionar) as fisier:
        for linie in fisier:
            linie = linie.replace("\n", "")
            cursor = conn.cursor()
            cursor.execute("INSERT INTO dex (words) VALUES (%r)" % linie)
    conn.commit()
    conn.close()
    print "Am introdus %d cuvinte in baza de date %s" % (lungime_dictionar, nume_baza_date)
            

def db(nume_baza_date):
    lista = []
    conn = sqlite3.connect(nume_baza_date)
    cursor = conn.cursor()
    data = cursor.execute("SELECT words from dex")
    for cuvant in data:
        if cuvant[0] not in lista:
            lista.append(str(cuvant[0]))
    return lista


def potriviri_exacte(cuvinte_mixte, nume_baza_date):
    lista_potriviri_exacte = []
    conn = sqlite3.connect(nume_baza_date)
    with open(cuvinte_mixte) as fisier:
        for linie in fisier:
            linie = linie.replace("\n", "")
            cursor = conn.cursor()
            cauta_cuvant = cursor.execute("SELECT words FROM dex WHERE words = %r LIMIT 1" % linie)
            for cuvant in cauta_cuvant:
                lista_potriviri_exacte.append(str(cuvant[0]))
    return lista_potriviri_exacte
    

def potriviri_derivate(cuvinte_mixte, cuvinte_romanesti, nume_baza_date):
    potriviri_derivate = []
    dex = db(nume_baza_date)
    for cuvant in dex:
        with open(cuvinte_mixte) as fisier:
            for linie in fisier:
                linie = linie.replace("\n", "")
                if cuvant in linie:
                    potriviri_derivate.append(str(linie))
                    
    for cuvant in potriviri_derivate:
        with open(cuvinte_romanesti, "a") as fisier:
            fisier.write(cuvant + "\n")
    fisier.close()


#creaza_bazadate("dex.db")
#introduc_dictionar("DEX.txt", "dex.db")
#potriviri_derivate("cuvinte_mixte.txt", "romanesti.txt", "dex.db")

 

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...