-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathword2vec.py
More file actions
70 lines (53 loc) · 2.2 KB
/
word2vec.py
File metadata and controls
70 lines (53 loc) · 2.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import socket
import ast
def build_request(method, parameter):
return str({"method": method,
"parameter": parameter})
class Word2Vec(object):
def __init__(self):
self._sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
def close(self):
self._sock.close()
def connect(self, host="localhost", port=4444):
server_address = (host, port)
print('connecting to %s port %s' % server_address)
self._sock.connect(server_address)
def send(self, data):
self._sock.send(str.encode(data))
def receive(self):
data = self._sock.recv(8192).decode('utf8')
try:
result = ast.literal_eval(data)
except ValueError:
result = data
return result
def getparams(self, parameter):
try:
del parameter['self']
except KeyError:
pass
return parameter
def doesnt_match(self, words):
self.send(build_request("doesnt_match", self.getparams(locals())))
return self.receive()
def similar_by_word(self, word, topn=10, restrict_vocab=None):
self.send(build_request("similar_by_word", self.getparams(locals())))
return self.receive()
def most_similar(self, positive=[], negative=[], topn=10, restrict_vocab=None, indexer=None):
self.send(build_request("most_similar", self.getparams(locals())))
return self.receive()
def wmdistance(self, document1, document2):
self.send(build_request("wmdistance", self.getparams(locals())))
return self.receive()
def similar_by_vector(self, vector, topn=10, restrict_vocab=None):
self.send(build_request("similar_by_vector", self.getparams(locals())))
return self.receive()
def n_similarity(self, ws1, ws2):
self.send(build_request("n_similarity", self.getparams(locals())))
return self.receive()
def similarity(self, w1, w2):
self.send(build_request("similarity", self.getparams(locals())))
return self.receive()
def most_similar_cosmul(self, positive=[], negative=[], topn=10):
self.send(build_request("most_similar_cosmul", self.getparams(locals())))
return self.receive()