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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [原始碼解析] PyTorch 流水線並行實現 (4)--前向計算原始碼PyTorch並行
- NLP segment-05-文字相似度計算 similarity java 開源實現MILAJava
- 大規模文字相似度計算
- 文字相似度計算之餘弦定理
- 中文文字相似度計算工具集
- 一行 Python 程式碼實現並行Python並行
- 同義詞相似度可以怎樣計算
- 基於GRU和am-softmax的句子相似度模型 | 附程式碼實現模型
- java實現兩個文字相似度 simHash 實現Java
- 網格人為干擾度計算方法的matlab程式碼實現Matlab
- python指令碼實現向伺服器上傳 zip並解壓Python指令碼伺服器
- CCF/CSP認證-第33次-相似度計算
- 數值計算:前向和反向自動微分(Python實現)Python
- Python量化交易系統實戰--計算交易指標Python指標
- [原始碼解析] PyTorch 流水線並行實現 (6)--平行計算原始碼PyTorch並行
- 怎樣用一行 Python 程式碼實現並行Python並行
- Spark/Scala實現推薦系統中的相似度演算法(歐幾里得距離、皮爾遜相關係數、餘弦相似度:附實現程式碼)Spark演算法
- Python 計算程式執行多久程式碼Python
- Python物件導向多型實現原理及程式碼例項Python物件多型
- python的個稅計算程式碼Python
- 如何計算並測量ABAP及Java程式碼的環複雜度Cyclomatic complexityJava複雜度
- python酒店相似度推薦系統Python
- python sift 特徵匹配 圖片相似度Python特徵
- 【csp202403-2】相似度計算【第33次CCF計算機軟體能力認證】計算機
- 無所不能的Embedding 1 - Word2vec模型詳解&程式碼實現模型
- 如何量化並加速你的程式設計能力【譯】程式設計
- 自然語言處理中句子相似度計算的幾種方法自然語言處理
- Python課程程式碼實現Python
- 現貨策略跟單量化交易系統程式設計開發及程式碼示例(量化跟單)程式設計
- 量化現貨/合約量化跟單對沖機器人系統開發/Python程式碼機器人Python
- 批次計算遙感影像NDVI:Python程式碼Python
- 使用SQL實現車流量的計算的示例程式碼SQL
- Python並行程式設計Python並行行程程式設計
- 使用python程式設計實現資料清洗之呼叫百度API實現地域維度規範化Python程式設計API
- 微信域名檢測實現機制與程式碼分享
- 用Python開發實用程式 – 計算器Python
- Python物件導向程式設計Python物件程式設計
- Python 物件導向程式設計Python物件程式設計