LanguageMachines / ticcltools

Tools for TICCL
GNU General Public License v3.0
14 stars 3 forks source link

New ranking feature based on word embeddings Word2Vec based on cosinus value #34

Open martinreynaert opened 5 years ago

martinreynaert commented 5 years ago

We currently have ranking feature: (skip[12]?0:(*vit)->cosine_rank);

This is based on the top 20 semantic nearest neighbours as returned on the basis of word2vec word embeddings and a further check on the cosine values. This works, but is too slow for production work. Perhaps the current request will warrant this earlier feature to be renamed.

I would like a new feature that for each pair of variant and particular CC retrieves the cosine value (as does ticcltool W2V-dist). Given all the values for all the CCs for a variant, the smallest value should then be ranked 'best', i.e. being assigned 1. Larger values then get assigned ranks 2, 3 ,4, etc. Possible draws get the same rank.

Many thanks!

kosloot commented 5 years ago

As mentioned in a private message, a test implementation is installed on black: it replaces the old cosine result with the new variant.

testing/evaluation is needed!

kosloot commented 5 years ago

To be clear an excerpt from the IRC conversation:

Jan 22 11:41:43 <Kobus_home>    mre: ?
Jan 22 11:41:57 <mre>   Kobus?
Jan 22 11:42:16 <Kobus_home>    heb je ergens een woordvector om te testen?
Jan 22 11:42:26 <mre>   ah, dat is een goeie
Jan 22 11:42:33 <mre>   ja
Jan 22 11:42:40 <mre>   even kijken waar
Jan 22 11:43:05 <Kobus_home>    en: ik ga er van uit dat het een vervanging van cosine ranking is, geen nieuwe/extra kolom
Jan 22 11:43:26 <Kobus_home>    en: kan ik het op black setten om te testen?
Jan 22 11:43:30 <Kobus_home>    zetten
Jan 22 11:48:18 <Kobus_home>    hmm
Jan 22 11:48:36 <Kobus_home>    misschien eerst maar ff shoppen voordat ik insneeuw
Jan 22 11:53:15 *   proycon heeft nog geen sneeuwvlokje gezien
Jan 22 11:53:41 <Kobus_home>    gevirtualiseerd
Jan 22 11:54:38 <proycon>   !dpkg xsnow
Jan 22 11:54:38 <f00f>  xsnow: brings Christmas to your desktop
Jan 22 11:55:11 <Kobus_home>    :)
Jan 22 11:55:30 <proycon>   oh, correctie, ik zie zojuist de eerste fijne sneeuwvlokjes vallen
Jan 22 11:55:36 <proycon>   !weeralarm
Jan 22 11:55:36 *   f00f weeralarmt, ofzo.
Jan 22 11:55:49 <Kobus_home>    !paniek proycon 
Jan 22 11:55:49 <f00f>  Moord! Brand! HET INTARWEB IS FTUK!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!BBQ!!!!!!!!!!!!!11!11!!!!WTF!~
Jan 22 11:55:57 <Kobus_home>    mre: ik ben dus ff weg
Jan 22 11:55:59 <Kobus_home>    !afk
Jan 22 11:56:08 <mre>   dexe: /opensonar/SoNaRCurated/W2V/UctoNorm/SoNaR500.TRAIN.Dim100CBOW.vec
Jan 22 11:56:12 <mre>   deze
Jan 22 11:56:58 <mre>   ik wou cosine ranking ook nog meer gaan evalueren, eigenlijk
Jan 22 11:57:18 <mre>   maar als je die liever vervangt, goed dan
Jan 22 11:57:42 <mre>   en het mag op Black, ja
Jan 22 12:24:06 <Kobus_home>    re
Jan 22 12:24:15 <Kobus_home>    ook weer overleefd
Jan 22 12:33:09 <mre>   Kobus, ik zoek nog verder. Die vectoren daar hebben de meeste testwoorden niet.
Jan 22 12:33:15 <mre>   Waarop ga je testen?
Jan 22 12:33:33 <Kobus_home>    geen idee
Jan 22 12:33:40 <mre>   Ik moet ergens vectoren voor DPO35 hebben
Jan 22 12:33:53 <mre>   Heb geen Engelse
Jan 22 12:34:03 <Kobus_home>    zitten daar ook ngrammen in
Jan 22 12:34:05 <Kobus_home>    ?
Jan 22 12:34:18 <Kobus_home>    met _ scheiders
Jan 22 12:53:12 <mre>   nee, dat zal niet
Jan 22 12:53:21 <mre>   deze werkt:
Jan 22 12:53:23 <mre>   reynaert@black:/opensonar/EDBO$ /exp/sloot/usr/local/bin/W2V-dist --vectors /opensonar/NUTICCL/W2V/NORM/EDBO/VEC/EDBO.SemNorm37.20150505.ALL.concat.vec bla
Jan 22 12:53:23 <mre>   filled with 13856002 vectors
Jan 22 12:53:24 <mre>   results in: bla.out
Jan 22 12:53:25 <mre>   reynaert@black:/opensonar/EDBO$ cat bla.out
Jan 22 12:53:26 <mre>   hont    hond    0.391911
Jan 22 12:53:27 <mre>   paerd   paard   0.918824
Jan 22 12:54:35 <mre>   dit is een unigram feature
Jan 22 12:56:55 <Kobus_home>    hmm
Jan 22 12:57:02 <Kobus_home>    !negeer voor nu ff
Jan 22 12:57:02 <f00f>  Laten we in plaats daarvan over lars gaan praten.
Jan 22 12:57:05 <Kobus_home>    eerts werken
Jan 22 12:57:08 <Kobus_home>    eerst
Jan 22 13:00:41 *   iris (~irishendric@145.118.84.28) has joined #lst
Jan 22 13:20:50 <Kobus_home>    mre: je kunt testen op black 
Jan 22 13:21:15 <Kobus_home>    rank aaanroepen met extra parameter --wordvec  /opensonar/NUTICCL/W2V/NORM/EDBO/VEC/EDBO.SemNorm37.20150505.ALL.concat.vec 
Jan 22 13:21:57 <Kobus_home>    maar doe dus niks met ngrammen
Jan 22 13:22:09 <Kobus_home>    moeten we nog bedenken wat je wil
Jan 22 13:22:39 <Kobus_home>    moet JIJ nog..
Jan 22 13:25:22 <mre>   ik zie het probleem, Kobus
Jan 22 13:25:34 <mre>   ik zie alleen nog niet hoe groot het is
Jan 22 13:25:37 <Kobus_home>    ja, is niet simpel
Jan 22 13:26:01 <Kobus_home>    vectoren kun je ook trainen op de ngramen natuurlijk
Jan 22 13:26:03 <mre>   bi- of trigramvectoren bestaan bij mijn weten niet
Jan 22 13:26:20 *   mre weet niet alles
Jan 22 13:26:36 <Kobus_home>    een ngram bij jou is een unigram, met _
Jan 22 13:26:48 <Kobus_home>    dus trainen daarop
Jan 22 13:26:53 <mre>   zo werkt word2vec bv. niet
Jan 22 13:27:10 <mre>   die leest tekst in
Jan 22 13:27:46 <mre>   maar goed, in mijn nieuwe project in Tilburg kan ik me daarin verdiepen ;0)
Jan 22 13:29:13 <Kobus_home>    W2V-dist kan ook op tekstfragmenten werken
Jan 22 13:29:23 <Kobus_home>    maar weet kwaliteit niet
Jan 22 13:29:31 <mre>   ik ook niet
Jan 22 13:29:47 <mre>   ik test dit al eens
Jan 22 13:30:02 <Kobus_home>    dist( "jan klaassen", "jan klaasen")
Jan 22 13:30:17 <mre>   ergens beginnen...
Jan 22 13:30:32 <mre>   dus geen underscore daar of kan dat ook?
Jan 22 13:30:47 <Kobus_home>    dan worden het unigrammen
Jan 22 13:30:53 <Kobus_home>    en moet je ze trainen
Jan 22 13:31:13 <Kobus_home>    't is dus niet simpel
Jan 22 13:32:16 <Kobus_home>    al zo versus alzo is dan ook niet opgelost. Hoe ziet W2v dat?
Jan 22 13:32:27 <mre>   dan zou je toch de underscores voor dit feature kunnen vervangen door spaties en alsnog de dist berekenen voor bi/trigrammen?
Jan 22 13:32:29 <Kobus_home>    !clue
Jan 22 13:32:29 *   f00f heeft geen idee.
Jan 22 13:32:53 <mre>   op dit moment ook geen idee, Kobus