Aujourd'hui, le 23 décembre, c'est "Tenchobushi" pour célébrer l'anniversaire de l'empereur Imagami. Au fait, on dit que c'est l'année de l'ère impériale 2676 (nombre primaire? Non, 2 $ ^ 2 \ fois 3 \ fois 223 $). Soudainement après midi, sous le Namba surélevé, les vibrations de définition du train Nankai et de l'IPA étaient coincées dans la main gauche, et c'est un messager commun Jupyter Notebook. J'essaierai de le connecter.
Depuis environ un an, je fais de la théorie de groupe sur mon professeur avec la formation d'Alafor. Comme j'ai accumulé beaucoup de notes manuscrites, je souhaite en garder une copie propre et la conserver dans le référentiel. J'utilise LaTeX pour marquer le texte principal de la formule, mais la formule essentielle Comme prévu, le mode cellule est défini sur «Markdown».
$ Notation LaTeX $
Si tel est le cas, MathJax fera le reste.
Pendant ce temps, bien défini était un exemple de problème, j'ai donc décidé d'ajouter le numérateur et le dénominateur de la fraction. Si vous le sortez comme ça, vous devrez faire une note car le moment de sourire momentané et le bien défini de l'ajout de fractions ont été montrés par la mise à mort instantanée (seuls les points principaux sont extraits).
$\begin{eqnarray*}
\dfrac{a}{b} = \dfrac{a^{'}}{b^{'}} \nonumber \\
\dfrac{c}{d} = \dfrac{c^{'}}{d^{'}} \nonumber
\end{eqnarray*}$
Puis,
$\begin{eqnarray*}
{a}{b^{'}} - {a^{'}}{b} = 0 \nonumber \\
{c}{d^{'}} - {c^{'}}{d} = 0 \nonumber
\end{eqnarray*}$
$\begin{eqnarray*}
\dfrac{ad+bc}{bd} = \dfrac{a^{'}d^{'}+b^{'}c^{'}}{b^{'}d^{'}} \nonumber
\end{eqnarray*}$
$\begin{eqnarray*}
(ad + bc)b^{'}d^{'} - bd(a^{'}d^{'} + b^{'}c^{'}) & = & adb^{'}d^{'} + bcb^{'}d^{'} - bda^{'}d^{'} - bdb^{'}c^{'} \nonumber \\
& = & dd^{'}(ab^{'} - a^{'}b) + bb^{'}(cd^{'} - c^{'}d) \nonumber \\
& = & 0 \nonumber
\end{eqnarray*}$
github le montre également assez bien, mais nbviewer Il est préférable de [reproduire] fidèlement l'expression disponible via /) (https://nbviewer.jupyter.org/github/azukiwasher/math-lessons/blob/master/algebra/well-defined.ipynb).
À partir de ce moment, j'ai commencé à sentir que quelque chose qui réduisait considérablement le nombre de mots était violemment sécrété dans le corps, alors j'ai essayé de le dessiner avec + IPA et la courbe de remniskate.
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
alpha = 1
t = np.linspace(0, 2*np.pi, num=1000)
x = [alpha * np.sqrt(2)*np.cos(i) / (np.sin(i)**2+1) for i in t]
y = [alpha * np.sqrt(2)*np.cos(i)*np.sin(i) / (np.sin(i)**2+1) for i in t]
plt.plot(x, y)
Un peu comme ça a été terminé. L'explication de ici sur la courbe de patinage Remni est merveilleuse.
Un exemple d'utilisation de opencv pour reconnaître le visage dit "humain" sur une image. Tout d'abord, vérifiez ce qui se passe lorsque vous l'essayez avec un certain caractère lâche (peut-être pas si lâche). Tirez la bibliothèque nécessaire et les images de caractères en vrac. Tout est fait avec une opération à guichet unique sur le bloc-notes Jupyter.
import cv2
from skimage import io
import matplotlib.pyplot as plt
%matplotlib inline
url = "https://qiita-image-store.s3.amazonaws.com/0/151745/8f4e7214-6c1c-c782-4986-5929a33f5a1b.jpeg "
img = io.imread(url)
plt.imshow(img)
Des données statiques (fichier de filtre en cascade) dans lesquelles les caractéristiques d'un visage humain sont apprises à l'avance sont préparées.
PATH_TO_CASCADE = "/Users/azki/anaconda3/share/OpenCV/haarcascades/haarcascade_frontalface_default.xml"
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cascade = cv2.CascadeClassifier(PATH_TO_CASCADE)
faces = cascade.detectMultiScale(img_gray, scaleFactor=1.1, minNeighbors=1, minSize=(1, 1))
new_img = img
for x,y,w,h in faces:
cv2.rectangle(new_img, (x,y), (x+w, y+h), (0, 0, 255), thickness=2)
plt.imshow(new_img)
Il semble qu'il soit reconnu comme un visage humain à deux endroits (carré bleu. La statue de bronze à la Ryoma est complètement traversée), mais j'ai décidé de ne pas la voir et d'essayer une autre image.
img2 = cv2.imread('gymnasium.jpg', cv2.IMREAD_COLOR)
plt.imshow(img2)
Appliquez le même filtre que le précédent Yuru Chara.
img2_gray = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
cascade = cv2.CascadeClassifier(PATH_TO_CASCADE)
faces = cascade.detectMultiScale(img2_gray, scaleFactor=1.1, minNeighbors=1, minSize=(1, 1))
new_img2 = img2
for x,y,w,h in faces:
cv2.rectangle(new_img2, (x,y), (x+w, y+h), (0, 0, 255), 2)
plt.imshow(new_img2)
Il semble que des explosions accidentelles se soient produites, mais le résultat n'est pas mauvais. Puisque j'ai pu trancher le visage d'une personne de cette manière, je devrais être capable d'en appliquer une mosaïque et d'analyser les émotions et les situations de manière mécanique et à grande échelle.
Quand Yoshiko voit le bureau de son mari tous les matins, il est toujours plus de dix heures, mais elle devient finalement son propre corps....
À partir d'un passage,
Je l'ai omis du manuscrit, mais je voudrais lui donner le titre "Human Chair".
Alors, ne soyez pas impoli, demandez simplement. 匆.
Puis, "[Human Chair] de Ranpo Edogawa (http://www.aozora.gr.jp/cards/001779/files/56648_58207.html)".
Se cachant dans une chaise qu'il a conçue, se faufilant dans la maison de quelqu'un d'autre au lieu d'être impoli, aiguisant ses sens comme s'il était devenu une sorte de capteur, s'intégrant au plus grand protocole de messagerie de l'époque, le bureau de poste, appelé une lettre qui n'est pas un journal. Envoyez des "sentiments" asynchrones et extrêmement unilatéraux. Le destinataire curieux et dans l'impasse a été terrifié par la réalité improbable et a demandé à son mari, qui était rentré du travail, "Eh bien, comment dois-je disposer de cette chaise dégoûtante?"
Je ne veux pas savoir comment cette "chaise humaine" a finalement été éliminée, et je ne veux pas savoir en premier lieu, mais "[] de Yumeno Hisaku, qui consiste en une excellente composition d'un mélange parfait de lettres et de textes locaux. Bottling Hell] est un Ranobe de l'ère Taisho, et ce travail est une donnée constituée d'une liste de mots word2vec Analysons-le.
Le texte préalablement nettoyé pour le bruit tel que rubis, en-tête et pied de page est analysé morphologiquement avec MeCab et tokenisé. En utilisant une liste de ces jetons comme entrée, le vocabulaire qui compose la "chaise humaine" est exprimé dans l'espace vectoriel avec word2vec. Plus la distance (valeur cos) dans l'espace est proche, plus elle est considérée comme sémantiquement similaire. De plus, il est possible d'effectuer des calculs (ajustement) entre les mots. Référence.
Quoi qu'il en soit, j'ai obtenu le texte de Aozora Bunko.
!curl -O http://www.aozora.gr.jp/cards/001779/files/56648_ruby_58198.zip
!unzip 56648_ruby_58198.zip
file = codecs.open('ningen-isu.txt', 'w', 'utf-8')
for line in codecs.open('ningen_isu.txt', 'r', 'shift_jis'):
file.write(line)
file.close
#Nettoyez maintenant le texte avec un éditeur approprié.
Analyse morphologique. Choisissez un mot dont la partie est "nom".
import MeCab
tagger = MeCab.Tagger ('-F"%f[6] " -U"%m " -E"\n" -b 50000 -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd')
tagger.parseToNode('')
text = open('ningen-isu.txt')
tokens = []
for line in text:
node = tagger.parseToNode(line)
while node:
word = node.surface
pos = node.feature.split(',')[0]
if 'nom' in pos:
tokens.append(word)
node = node.next
with open('ningen-isu-wakati.txt', 'w') as file:
file.write(" ".join(tokens))
text.close
file.close
Exprimez des mots dans l'espace vectoriel. Aussi, jusqu'à ce qu'une partie de celui-ci soit visualisée.
#Importer les bibliothèques requises
import sys
import codecs
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.font_manager
from matplotlib.font_manager import FontProperties
from sklearn.manifold import TSNE
from gensim.models import word2vec
%matplotlib inline
#Génération de vecteur de mot
#Généré"ningen-isu-w2v"Supprimez la première ligne du fichier ligne par ligne.
data = word2vec.LineSentence('ningen-isu-wakati.txt')
model = word2vec.Word2Vec(data, size=200, min_count=1)
model.save_word2vec_format("ningen-isu-w2v", binary=False)
#Configuration des polices japonaises pour la visualisation
font_path = '/Library/Fonts/Osaka.ttf'
font_prop = matplotlib.font_manager.FontProperties(fname=font_path)
matplotlib.rcParams['font.family'] = font_prop.get_name()
matplotlib.rcParams['font.size'] = 10.0
#Une fonction qui traite un fichier au format word2vec en données de visualisation.
def load_embeddings(file_name):
with codecs.open(file_name, 'r', 'utf-8') as f_in:
vocabulary, wv = zip(*[line.strip().split(' ', 1) for line in f_in])
wv = np.loadtxt(wv, delimiter=' ', dtype=float)
return wv, vocabulary
#Génération de graphes
embeddings_file = "ningen-isu-w2v"
wv, vocabulary = load_embeddings(embeddings_file)
tsne = TSNE(n_components=2, random_state=0)
np.set_printoptions(suppress=True)
Y = tsne.fit_transform(wv[:200,:]) #Limité à quelques mots
plt.figure(figsize=(20,20))
plt.scatter(Y[:, 0], Y[:, 1])
for label, x, y in zip(vocabulary, Y[:, 0], Y[:, 1]):
plt.annotate(label, xy=(x, y), xytext=(0, 0), textcoords='offset points')
#plt.show()
plt.savefig('ningen-isu.png', bbox_inches='tight')
plt.close()
Vous pouvez voir que des mots tels que «je», «chaise» et «sentir» sont proches les uns des autres, oui.
Échantillons des distances (valeurs cos) de mots spécifiques.
HM. Alors que se passe-t-il lorsque vous tirez une «chaise» de «je»?
"subtil".
En ces jours où il est bruyant avec l'IoT et la Blockchain, quel genre de «chaise humaine» aurait été nouvellement lancé si Ranpo était en vie, et des impressions subjectives qui ont peu à voir avec les résultats de l'analyse. C'est tout pour la conclusion.
fin.
POSTSCRIPT
#Génération de graphes
embeddings_file = "ningen-isu-w2v"
wv, vocabulary = load_embeddings(embeddings_file)
tsne = TSNE(n_components=2, random_state=0)
np.set_printoptions(suppress=True)
Y = tsne.fit_transform(wv[:200,:]) #Limité à quelques mots
Dans la fonction ci-dessus, Y = tsne.fit_transform (wv [: 200,:])
, ce problème a été reproduit dans l'environnement local.
https://github.com/scikit-learn/scikit-learn/issues/6665
Comme vous pouvez le voir dans le commentaire sur le problème, j'ai pu le résoudre avec pip install --pre scikit-learn -U
même dans mon environnement.
Recommended Posts