6b9cb1fa3e
[wip] word2vec: work in progress implementation of word2vec
35 lines
961 B
Haskell
35 lines
961 B
Haskell
{-# LANGUAGE RecordWildCards #-}
|
|
{-# LANGUAGE FlexibleContexts #-}
|
|
{-# LANGUAGE ScopedTypeVariables #-}
|
|
|
|
module Main where
|
|
import Sibe
|
|
import Sibe.Word2Vec
|
|
import Sibe.Utils
|
|
import Data.Default.Class
|
|
import qualified Data.Vector.Storable as V
|
|
import Data.List (sortBy)
|
|
import Data.Function (on)
|
|
import Numeric.LinearAlgebra
|
|
import System.IO
|
|
import Data.List.Split
|
|
|
|
main = do
|
|
{-ds <- do
|
|
content <- readFile "examples/doc-classifier-data/data-reuters"
|
|
let splitted = splitOn (replicate 10 '-' ++ "\n") content
|
|
d = concatMap (tail . lines) (take 100 splitted)
|
|
return d-}
|
|
let ds = ["I like deep learning", "I like NLP", "I enjoy flying"]
|
|
|
|
let session = def { learningRate = 0.8
|
|
, batchSize = 10
|
|
, epochs = 1000
|
|
} :: Session
|
|
w2v = def { docs = ds }:: Word2Vec
|
|
|
|
|
|
r <- word2vec w2v session
|
|
{-print r-}
|
|
return ()
|