Dodani popravki za iskanje kandidatov in števila besedil. Dodana logika za klicanje ocrja. Popravljen bug za timeout v ateapi-ju. Popravljen swager.

This commit is contained in:
Marko Ferme
2022-10-19 04:07:15 +02:00
parent d44a268b24
commit 107e5fd4d3
6 changed files with 132 additions and 27 deletions
+77
View File
@@ -78,6 +78,8 @@ def vrni_oss_dokumente(leta, vrste, kljucnebesede, udk):
print(sql)
print(params)
cur.execute(sql,params)
@@ -89,6 +91,81 @@ def vrni_oss_dokumente(leta, vrste, kljucnebesede, udk):
return ret
def vrni_oss_terminoloske_kandidate(leta, vrste, kljucnebesede, udk):
ret = []
try:
print(database_info)
conn = mariadb.connect(**database_info)
cur = conn.cursor()
sql = "select distinct document_id from metadata"
where=""
params=[]
if (udk):
where_in_udk = ','.join(['%s'] * len(udk))
where=" udk IN (%s) " % (where_in_udk)
params=udk
if (leta):
where_in_leta = ','.join(['%s'] * len(leta))
if (where):
where=where+ " AND "
where=where + " leto IN (%s) " % (where_in_leta)
params=params+leta
if (vrste):
if (where):
where=where+ " AND "
where_in_vrste = ','.join(['%s'] * len(vrste))
where=where + " tipologija IN (%s) " % (where_in_vrste)
params=params+vrste
if (kljucnebesede):
if (where):
where=where+ " AND "
where_in_kb = ','.join(['%s'] * len(kljucnebesede))
where=where + " kljucnabeseda IN (%s) " % (where_in_kb)
params=params+kljucnebesede
if(where):
sql=sql+" where " + where
print(sql)
print(params)
sqltk=f"""Select ngram,upos,avg(tfidf) as tfidf from (
SELECT tf.ngram, tf.upos,(0.5+0.5*(tf.tf/d.maxtf))*log(152000/df.df)*(-1*log(1-((dff.df)/(1+df.df)))) as tfidf
FROM ngrams_upos_tf tf, documents d,
(
Select ngram, upos, count(*) as df from ngrams_upos_tf TF
where document_id in
({sql})
group by TF.ngram, TF.upos
) dff, ngrams_upos_df df
where
tf.document_id=d.document_id and
df.ngram=tf.ngram AND df.upos=tf.upos and
dff.ngram=tf.ngram AND dff.upos=tf.upos
) X
group by ngram,upos
order by tfidf desc
limit 100"""
print (sqltk)
cur.execute(sqltk,params)
ret = list(cur)
except mariadb.Error as e:
print(f"Error connecting to MariaDB Platform: {e}")
return ret
# class BaseModel(Model):
# class Meta:
# database = db