小编Bas*_*asj的帖子

字符串与 Python + Sqlite 的相似度(Levenshtein 距离/编辑距离)

Python+Sqlite 中是否有可用的字符串相似性度量,例如sqlite3模块?

用例示例:

import sqlite3
conn = sqlite3.connect(':memory:')
c = conn.cursor()
c.execute('CREATE TABLE mytable (id integer, description text)')
c.execute('INSERT INTO mytable VALUES (1, "hello world, guys")')
c.execute('INSERT INTO mytable VALUES (2, "hello there everybody")')
Run Code Online (Sandbox Code Playgroud)

此查询应匹配 ID 为 1 的行,但不匹配 ID 为 2 的行:

c.execute('SELECT * FROM mytable WHERE dist(description, "He lo wrold gyus") < 6')
Run Code Online (Sandbox Code Playgroud)

如何在 Sqlite+Python 中做到这一点?

关于我到目前为止发现的内容的注释:

  • Levenshtein距离,即单字符编辑(插入,删除或替换)的最小数量需要改变一个字到另一个,可能是有用的,但我不知道是否SQLite中存在的正式实施(我看到了一些自定义实现,比如这个

  • 所述Damerau-的Levenshtein是相同的,除了它也允许两个相邻字符之间换位; 它也被称为编辑距离

  • 我知道自己定义一个函数是可能的,但是实现这样的距离并不容易(对数据库进行超高效的自然语言处理比较真的很重要),这就是为什么我想看看 Python / Sqlite 是否已经具有这样的功能一个工具

  • Sqlite 具有 …

python sqlite similarity string-comparison

5
推荐指数
2
解决办法
2777
查看次数

如何检测扫描纸上的图案(例如二维码),以便正确旋转/缩放/识别?

我有需要打印的 PDF 文件或 JPG 图像(这些是手动填写的公式),我需要:

  • 扫描后,应使用 Python 完美旋转/缩放图像,以便我可以使用 x、y 坐标访问公式的某些部分

  • 应使用数字 ID 识别扫描的图像。

我应该在公式纸上添加什么样的模式,以便 Python 库(哪个?)能够裁剪/旋转它/用 ID 识别它?

我正在考虑在纸的左上角添加一个二维码(包含一个数字 ID),在纸的右下角添加一个二维码,或者也可能是“hirondelles”符号:

二维码将使用qrcode库生成:

import qrcode
img = qrcode.make('ID1138934')
Run Code Online (Sandbox Code Playgroud)

并使用此方法添加到 PDF 之上。


笔记:

在此处输入图片说明

python opencv qr-code image-processing image-scanner

5
推荐指数
1
解决办法
6567
查看次数

如何可靠地检测条形码的4个角?

我正在尝试使用Python + 模块检测此Code128条形码zbar:

(图像下载链接在这里).

这有效:

import cv2, numpy
import zbar
from PIL import Image 
import matplotlib.pyplot as plt

scanner = zbar.ImageScanner()
pil = Image.open("000.jpg").convert('L')
width, height = pil.size    
plt.imshow(pil); plt.show()
image = zbar.Image(width, height, 'Y800', pil.tobytes())
result = scanner.scan(image)

for symbol in image:
    print symbol.data, symbol.type, symbol.quality, symbol.location, symbol.count, symbol.orientation
Run Code Online (Sandbox Code Playgroud)

但是只检测到一个点:(596, 210).

如果我应用黑白阈值:

pil = Image.open("000.jpg").convert('L')
pil = pil .point(lambda x: 0 if x<100 else 255, '1').convert('L')    
Run Code Online (Sandbox Code Playgroud)

它更好,我们有3分:(596,210),(482,211),(596,212).但它增加了一个难度(找到最佳阈值 - 这里100 - 自动为每个新图像). …

python opencv barcode barcode-scanner zbar

5
推荐指数
1
解决办法
3100
查看次数

使用PIL裁剪图像时的背景颜色

好处PIL.crop是,如果我们想要在图像尺寸之外进行裁剪,它只需使用:

from PIL import Image
img = Image.open("test.jpg")
img.crop((-10, -20, 1000, 500)).save("output.jpg")
Run Code Online (Sandbox Code Playgroud)

问题:如何将添加区域的背景颜色更改为白色(默认值:黑色)?

在此输入图像描述

注意:

python image python-imaging-library pillow

5
推荐指数
2
解决办法
2589
查看次数

拒绝 xmlrpc.php 文件但不记录失败的请求

我将此添加到.htaccessWordPress 网站:

<files xmlrpc.php>
order allow,deny
deny from all
</files>
Run Code Online (Sandbox Code Playgroud)

它有效,当有人尝试访问时http://example.com/xmlrpc.php,会显示此消息:

Forbidden
您无权访问此服务器上的 /xmlrpc.php。

但是,日志仍然显示 ( less /var/log/apache2/error.log):

[Thu May 02 10:02:03.316061 2019] [access_compat:error] [pid 19467] 
[client 1.2.3.4:49409] AH01797: client denied by server 
configuration: /path/to/xmlrpc.php
Run Code Online (Sandbox Code Playgroud)

如何拒绝访问 xmlrpc.php(可能来自 .htaccess)但防止它出现在 Apache 日志中?

php apache wordpress .htaccess xml-rpc

5
推荐指数
1
解决办法
1373
查看次数

使用许多 Flexbox、图像图标、字体时减少页面显示闪烁

我有一个 HTML 页面,其中有许多用途flexbox和一些div带有 CSS 的图标background-image

在浏览器中打开 HTML 页面(即使在本地,不使用网络)时,会出现一些闪烁(可能不到 100 毫秒,但仍然存在):

  • 有些项目移动了几个像素(因为flexbox居中)

  • 某些图标需要几毫秒才能加载

  • 字体需要几十毫秒来加载,因此我们可以看到使用默认字体(可能 < 50 毫秒)显示的内容,然后使用正确的字体(@font-face...)

如何要求浏览器仅<div class="header-toolbar">在准备好以明确方式 100% 绘制时才显示/显示 HTML 元素(例如工具栏)(无需进一步移动/闪烁)?

html javascript css fonts flicker

5
推荐指数
1
解决办法
820
查看次数

jQuery数据(...)没有存储在DOM中?

如果data-x在DOM中是这样的:

<div id="blah" data-x="143">Hello</div>
Run Code Online (Sandbox Code Playgroud)

我用它修改它

$('#blah').data('x', 13687)
Run Code Online (Sandbox Code Playgroud)

那么似乎data-x没有在DOM中修改(在下面的代码片段代码中使用浏览器的Inspect功能):

在此输入图像描述

这是正常行为吗?


例:

console.log($('#blah').data('x'));
$('#blah').data('x', 13687)
console.log($('#blah').data('x'));
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<div id="blah" data-x="143">Hello</div>
Run Code Online (Sandbox Code Playgroud)

javascript jquery dom

4
推荐指数
1
解决办法
920
查看次数

命名空间'std'中没有名为'begin'的成员

我在Windows上成功编译了一个应该是跨平台的代码.现在,当使用Mac OS X在Xcode中编译它时,我得到:

std::valarray<float> v(32);
...
std::sort(begin(v), end(v));            # Use of undeclared identifier 'begin'
std::sort(std::begin(v), std::end(v));  # No member named 'begin' in namespace 'std'
std::sort(std::valarray::begin(v), std::valarray::end(v));  # Idem, error as well
Run Code Online (Sandbox Code Playgroud)

为什么会No member named 'begin' in namespace 'std'发生错误?

c++ xcode namespaces std

4
推荐指数
1
解决办法
2841
查看次数

带有 .py 文件的配置文件

有人告诉我,这样做并不是一个很好的做法(尽管它存在于Python 模式的主要答案中,用于在整个应用程序中共享配置):

配置文件.py

SOUNDENABLED = 1
FILEPATH = 'D:\\TEMP\\hello.txt'
Run Code Online (Sandbox Code Playgroud)

主要.py

import configfile

if configfile.SOUNDENABLED == 1:
    ....

f = open(configfile.FILEPATH, 'a')
...
Run Code Online (Sandbox Code Playgroud)

许多人使用 INI 文件通过ConfigParser模块或iniparse或其他类似模块进行本地配置这一事实证实了这一点。

configfile.py问题:为什么使用 INI 文件进行本地配置 + INI 解析器 Python 模块比仅导入包含正确配置值作为常量的文件更好?

python ini parsing configuration-files

4
推荐指数
1
解决办法
8311
查看次数

读取 JSON 并将键转换为 int

众所周知,json将 dict 的整数键转换为字符串:

import json
print json.dumps({1: [2.5, 2.5, 2.5], 2: [3, 3, 3, 3]})
# {"1": [2.5, 2.5, 2.5], "2": [3, 3, 3, 3]}
Run Code Online (Sandbox Code Playgroud)

加载时恢复整数键的最干净的方法是什么?

d = json.loads('{"1": [2.5, 2.5, 2.5], "2": [3, 3, 3, 3]}')
print d
# {u'1': [2.5, 2.5, 2.5], u'2': [3, 3, 3, 3]}
Run Code Online (Sandbox Code Playgroud)

我在想:

d = {int(k): d[k] for k in d}
Run Code Online (Sandbox Code Playgroud)

但是有没有一种更简洁的方法来处理带有 JSON/Python 的整数键的字典,而不需要后验的键转换?

python json dictionary

4
推荐指数
2
解决办法
2552
查看次数