word2vec實現域名向量化並計算相似度-python程式碼
from __future__ import division # py3 "true division"
import os
import random
import itertools
from gensim import utils, matutils
import logging
logger = logging.getLogger(__name__)
class PathLineSentences:
def __init__(self, source, max_sentence_length=500, limit=None):
"""Like :class:`~gensim.models.word2vec.LineSentence`, but process all files in a directory
in alphabetical order by filename.
The directory must only contain files that can be read by :class:`gensim.models.word2vec.LineSentence`:
.bz2, .gz, and text files. Any file not ending with .bz2 or .gz is assumed to be a text file.
The format of files (either text, or compressed text files) in the path is one sentence = one line,
with words already preprocessed and separated by whitespace.
Warnings
--------
Does **not recurse** into subdirectories.
Parameters
----------
source : str
Path to the directory.
limit : int or None
Read only the first `limit` lines from each file. Read all if limit is None (the default).
"""
self.source = source
self.max_sentence_length = max_sentence_length
self.limit = limit
if os.path.isfile(self.source):
logger.debug('single file given as source, rather than a directory of files')
logger.debug('consider using models.word2vec.LineSentence for a single file')
self.input_files = [self.source] # force code compatibility with list of files
elif os.path.isdir(self.source):
self.source = os.path.join(self.source, '') 外匯跟單gendan5.com# ensures os-specific slash at end of path
logger.info('reading directory %s', self.source)
self.input_files = os.listdir(self.source)
self.input_files = [self.source + filename for filename in self.input_files] # make full paths
self.input_files.sort() # makes sure it happens in filename order
else: # not a file or a directory, then we can't do anything with it
raise ValueError('input is neither a file nor a path')
logger.info('files read into PathLineSentences:%s', '\n'.join(self.input_files))
def __iter__(self):
"""iterate through the files"""
for file_name in self.input_files:
logger.info('reading file %s', file_name)
with utils.open(file_name, 'rb') as fin:
for line in itertools.islice(fin, self.limit):
line = utils.to_unicode(line).split('\t')[1].strip().split(',')
for i in range(25):
random.shuffle(line)
# print(line)
i = 0
while i < len(line):
yield line[
i: i + self.max_sentence_length] # if max_sentence_length = 10:[d1....d10] / [d10...d20]
i += self.max_sentence_length
# print(line)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2790151/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 機器學習中那些相似度的計算方法及實現機器學習
- 基於word2vec與Word Mover Distance的文件相似度計算
- js實現的圖片相似度演算法程式碼JS演算法
- gensim載入word2vec訓練結果(bin檔案)並進行相似度實驗
- NLP segment-05-文字相似度計算 similarity java 開源實現MILAJava
- 大規模文字相似度計算
- 通過decode計算相似度
- [原始碼解析] PyTorch 流水線並行實現 (4)--前向計算原始碼PyTorch並行
- 文字相似度計算之餘弦定理
- 中文文字相似度計算工具集
- 演算法計算字串的相似度演算法字串
- 同義詞相似度可以怎樣計算
- java實現兩個文字相似度 simHash 實現Java
- 基於GRU和am-softmax的句子相似度模型 | 附程式碼實現模型
- 簡單計算器的程式導向實現和麵向物件實現對比物件
- CCF/CSP認證-第33次-相似度計算
- 用Python實現《計算的本質:深入剖析程式和計算機》中的程式碼Python計算機
- 一行 Python 程式碼實現並行Python並行
- Spark/Scala實現推薦系統中的相似度演算法(歐幾里得距離、皮爾遜相關係數、餘弦相似度:附實現程式碼)Spark演算法
- 網格人為干擾度計算方法的matlab程式碼實現Matlab
- python指令碼實現向伺服器上傳 zip並解壓Python指令碼伺服器
- Python量化交易系統實戰--計算交易指標Python指標
- 數值計算:前向和反向自動微分(Python實現)Python
- 海量資料相似度計算之simhash短文字查詢
- nodeJS程式碼實現計算交社保程式碼例項NodeJS
- 海量資料相似度計算之simhash和海明距離
- javascript計算字串長度程式碼例項JavaScript字串
- [原始碼解析] PyTorch 流水線並行實現 (6)--平行計算原始碼PyTorch並行
- 怎樣用一行 Python 程式碼實現並行Python並行
- Python 計算程式執行多久程式碼Python
- 如何計算並測量ABAP及Java程式碼的環複雜度Cyclomatic complexityJava複雜度
- Python物件導向多型實現原理及程式碼例項Python物件多型
- 自然語言處理中句子相似度計算的幾種方法自然語言處理
- python sift 特徵匹配 圖片相似度Python特徵
- python酒店相似度推薦系統Python
- Python實現程式碼行數統計工具Python
- 如何量化並加速你的程式設計能力【譯】程式設計
- python的個稅計算程式碼Python