小编Y4R*_*D13的帖子

如何对 glob.glob 进行数字排序?

我在一个文件夹中有一堆按数字排序的文件,当我尝试对 glob.glob 进行排序时,我从来没有以正确的顺序获得文件。


文件示例和预期输出排序

folder
------
C:\Users\user\Desktop\folder\1 sample.mp3
C:\Users\user\Desktop\folder\2 sample.mp3
C:\Users\user\Desktop\folder\3 sample.mp3
C:\Users\user\Desktop\folder\4 sample.mp3
C:\Users\user\Desktop\folder\5 sample.mp3
... over 800 files...
Run Code Online (Sandbox Code Playgroud)

我尝试过但输出似乎是随机的

folder
------
C:\Users\user\Desktop\folder\1 sample.mp3
C:\Users\user\Desktop\folder\2 sample.mp3
C:\Users\user\Desktop\folder\3 sample.mp3
C:\Users\user\Desktop\folder\4 sample.mp3
C:\Users\user\Desktop\folder\5 sample.mp3
... over 800 files...
Run Code Online (Sandbox Code Playgroud)

尝试按日期或大小排序不是解决方案。

更新 之前的所有答案效果很好:

files = sorted(glob.glob(f'{os.getcwd()}/*.mp3'), key=lambda x: (os.path.splitext(os.path.basename(x))[0]))


C:\Users\user\Desktop\folder\1 speech.mp3
C:\Users\user\Desktop\folder\10 speech.mp3 
C:\Users\user\Desktop\folder\100 speech.mp3
C:\Users\user\Desktop\folder\101 speech.mp3
C:\Users\user\Desktop\folder\102 speech.mp3
C:\Users\user\Desktop\folder\103 speech.mp3  
C:\Users\user\Desktop\folder\104 speech.mp3
C:\Users\user\Desktop\folder\105 speech.mp3
C:\Users\user\Desktop\folder\106 speech.mp3
C:\Users\user\Desktop\folder\107 speech.mp3
C:\Users\user\Desktop\folder\108 speech.mp3
C:\Users\user\Desktop\folder\109 speech.mp3
C:\Users\user\Desktop\folder\11 speech.mp3 
Run Code Online (Sandbox Code Playgroud)

python sorting glob list

7
推荐指数
2
解决办法
9527
查看次数

如何使用 SpaCy 解决西班牙语词形还原问题?

当尝试用西班牙语对超过 60,000 个单词的 csv 进行词形还原时,SpaCy无法正确写入某些单词,我知道该模型并非 100% 准确。但是,我还没有找到任何其他解决方案,因为NLTK没有带来西班牙语核心。

有朋友在西班牙语的 Stackoverflow 上问过这个问题,但是这个社区和这个社区相比还是很小的,我们没有得到任何答案。

代码:

nlp = spacy.load('es_core_news_sm')

def lemmatizer(text):  
  doc = nlp(text)
  return ' '.join([word.lemma_ for word in doc])

df['column'] = df['column'].apply(lambda x: lemmatizer(x))
Run Code Online (Sandbox Code Playgroud)

我试图对某些我发现错误的词进行词形还原,以证明 SpaCy 没有正确执行:

text = 'personas, ideas, cosas' 
# translation: persons, ideas, things

print(lemmatizer(text))
Run Code Online (Sandbox Code Playgroud)
# Current output:
personar , ideo , coser 
# translation:
personify, ideo, sew

# The expected output should be:
persona, idea, cosa

# translation: 
person, idea, thing
Run Code Online (Sandbox Code Playgroud)

python lemmatization spacy

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

如何将 Tkinter 编译为 MacOS 的可执行文件?

我正在尝试将 Tkinter 应用程序编译为 MacO 的可执行文件。我尝试使用py2app和pyinstaller。我几乎成功使用py2app,但它返回以下错误:

追溯

The Info.plist file must have a PyRuntimeLocations array containing string values for preferred Python runtime locations.  
These strings should be "otool -L" style mach ids; "@executable_stub" and "~" prefixes will be translated accordingly.
Run Code Online (Sandbox Code Playgroud)

看起来是这样的setup.py:

from setuptools import setup

APP = ['main.py']
DATA_FILES = ['config.json']
OPTIONS = {
    'argv_emulation': True
}

setup(
    app=APP,
    data_files=DATA_FILES,
    options={'py2app': OPTIONS},
    setup_requires=['py2app'],
)
Run Code Online (Sandbox Code Playgroud)

这是目录结构:

-modules/---__init.py__
|        | 
|        -- gui_module.py
|        | …
Run Code Online (Sandbox Code Playgroud)

python macos tkinter pyinstaller py2app

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

如何将预测作为二进制输出?- Python(张量流)

我正在使用电影评论作为张量流的数据来学习文本分类,但是当我得到与标签不同(不是四舍五入,不是二进制)的输出预测时,我陷入了困境。

代码

predict = model.predict([test_review])

print("Prediction: " + str(predict[0])) # [1.8203685e-19] 
print("Actual: " + str(test_labels[0])) # 0
Run Code Online (Sandbox Code Playgroud)

预期输出应该是:

预测:[0.]
实际:0

输出给出了什么:

预测:[1.8203685e-19]
实际:0

输出预测应该是 0 或 1,表示评论是否良好。

完整代码

import tensorflow as tf
from tensorflow import keras
import numpy as np

data = keras.datasets.imdb

(train_data, train_labels), (test_data, test_labels) = data.load_data(num_words = 10000)

word_index = data.get_word_index()
word_index = {k:(v + 3) for k, v in word_index.items()} 

word_index['<PAD>'] = 0
word_index['<START>'] = 1 
word_index['<UNK>'] = 2
word_index['<UNUSED>'] = 3

reverse_word_index = dict([(value, key) …
Run Code Online (Sandbox Code Playgroud)

python prediction text-classification tensorflow

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

如何比较来自两个不同数据帧的列并保留第一个数据帧中的值?

我有两个不同大小的数据框。它们都有四列:单词、x、y 和 z。

但是,在加入这两个数据帧时,我想保留相似单词的 x、y、z 值。保留 df1 中不存在但 df2 中存在的词。

我尝试使用,pd.merge但这将保留两个值并且仅保留相似的单词。如果我使用,pd.concat我必须删除类似的元素,但不会来自第一个数据帧。

样本

df1 = pd.DataFrame({'Words': 
       ['aardvark', 'abalone', 'abandon'],
     'x': [0.999, 0.888, 0.777], 
     'y': [0.999, 0.888, 0.777],
     'z': [0.999, 0.888, 0.777]})

df2 = pd.DataFrame({'Words': 
       ['aaaaahh', 'aardvark', 'abalone', 'abandon', 'zoo', 'zoom', 'zucchini'], 
     'x': [0.199, 0.111, 0.222, 0.333, 0.232, 0.842, 0.945], 
     'y': [0.929, 0.111, 0.222, 0.333, 0.112, 0.62, 0.265],
     'z': [0.993, 0.111, 0.222, 0.333, 0.212, 0.344, 0.745]})

# Expected output
df_res = pd.DataFrame({'Words': 
          ['aaaaahh', 'aardvark', 'abalone', 'abandon', 'zoo', 'zoom', …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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