包含标签 algorithm 的文章

利用Tesseract对图片或pdf进行OCR

1. 准备 下载OCR核心工具包Tesseract并安装,参考Tesseract OCR 下载及安装教程 (中英文语言包)_eng.traineddata下载-CSDN博客,注意中文语言包需要下载,如果不下载语言包,可能无法识别中文。 下载PDF转图片工具包Releases · oschwartz10612/poppler-windows (github.com);如果仅仅是OCR图片,可以不用下载这个 完成后,将上述两个的(tesseract.exe&pdfimages.exe)目录加入到电脑的环境变量PATH中: 2 安装python 依赖 下面安装Python 的依赖 pip install pytesseract pip install pdf2image 3 识别图片 def ocr_image(): from PIL import Image # 打开图片 image = Image.open('demo.png') # 使用pytesseract进行OCR识别 text = pytesseract.image_to_string(image, lang='chi_sim') # lang设置为中文 # 输出识别结果 print(text) 4 识别pdf def ocr_pdf(pdf): from pdf2image import convert_from_path # 设置tesseract.exe的路径 pytesseract.pytesseract.tesseract_cmd = r'D:\Games\TesseractOCR5\tesseract.……

阅读全文

Argsort 以及Rank的Javascript代码练习

1 引言:argsort以及rank排序问题 $\P$ argsort-定义 假设一个数组$a$由$$\underbrace{[x_0,x_1,\dots,x_i, \dots,x_n]}_{0\dots n乱序}$$构成,那么$b=argsort(a)$定义为:经过排序后a中元素(即$0..n$)的索引数组: $$ \underbrace{[a中第0大数的索引,\dots,a中第i大数的索引, \dots,a中第n大数的索引]}_{0\dots n} $$ 我们假设$a[i]= x$,由于$i是a中第x大的数$,那么$i在b中位置就是x$,${b[x]=i}$,如图所示: 消去x,可得: $$ b[x]=b[a[i]]=i $$ $\S$如果对a进行两次argsort,会发生神魔事情呢,这里由一个文章回答为什么对数列使用两次argsort后能得到原数列的rank数列? - 知乎 (zhihu.com),摘抄如下: 对于一个从0~k-1组成序列a来说,执行argsort得到序列b就是b[a[i]]=i,再执行一次得到c就是c[b[j]]=j,代入j=a[i]得c[b[a[i]]]=a[i],c[i]=a[i],所以一个rank序列两次argsort之后自然会变回原样 结合上面的假设a是一个0…n 乱序而来的数组,那么a里面存储的正好是数组a中各元素的排名。推广到任意乱序的序列S,我们只需要将S里的元素一一映射到$[(S_i,a_i)],a_i\in {0..n}$,然后对$S_i$排序,$argsort.argsort(a)=rank(a)$。 2. Show me the code! // a[i],b[i] = > {...a[i]:b[i]...} zip = function (a, b) { let r = [] for (let i in a) { r.push([a[i], b[i]]) } return r; } // argsort返回的是索引 r,[a[r[0]]..a[r[n]]] 就是将a排序好的数组 function argsort(arr, cmp = (a, b) => a - b) { let arr_ind = zip(arr, range(arr.……

阅读全文

Dynamic Programming

​ Dynamic programming is a math method for some special problems1,for any $n$ ,the problem can be reduce to sub problems recursively.the Fibonacci is a typical DP problem: $$ fib(n) = fib(n-1) + fib(n-2) $$ ​ For a positive integer $n$ the result $fib(n)$ can be parted into two sub problems $fib(n-1)$ and $fib(n-2)$; for $n=0,1$ the result is 1 : fib n | (n == 0) = a | (n == 1) = b | otherwise = fib (n - 1) + fib (n - 2) where a = 1; b = 1 ​ or a more complex version:……

阅读全文