Skip to content

Instantly share code, notes, and snippets.

@umaz
umaz / translate.gs
Created February 5, 2019 13:04
文書を翻訳するGAS
function doGet(e) {
var p = e.parameter;
var translatedText = LanguageApp.translate(p.text, p.source, p.target);
return translatedText;
}
@umaz
umaz / slack.rb
Created February 5, 2019 12:55
翻訳した文書を投稿するslackbot
# coding: utf-8
require 'slack'
require 'date'
require 'httpclient'
require 'uri'
TOKEN = 'YOUR_TOKEN'
Slack.configure do |conf|
conf.token = TOKEN
@umaz
umaz / tfidf.rb
Created February 5, 2019 12:51
RubyによるTFIDF値の算出
require "csv"
require 'natto'
data = [
#文書の配列
]
#tfの計算
def tf(list)
word_store = Hash.new(0) #初期値0のハッシュ
list.each do |count| #出現回数のカウント
@umaz
umaz / cluster.py
Created February 5, 2019 12:49
階層型クラスタリング
import numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.cluster import KMeans
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
from scipy.cluster.hierarchy import dendrogram, linkage, fcluster, set_link_color_palette
np.set_printoptions(precision=2)
docs = np.array([
#形態素毎にスペースで区切られた文書の配列
@umaz
umaz / Elevator.vue
Created February 5, 2019 12:43
エレベーターのようなアニメーション
<template>
<div id="wrapper">
<div class="base">
<div id="scaler" class="scaler">
<section class="section section-1" data-z="0">
<img src="../assets/4floor.png" width="100%" class="back"/>
</section>
<section class="section section-2" data-z="5">
<img src="../assets/4floor.png" width="100%" class="back"/>
</section>
@umaz
umaz / get_tweet.rb
Created February 5, 2019 12:41
ツイートの取得
require "twitter"
#1.で作成したkey,tokenのセット
client = Twitter::REST::Client.new do |config|
config.consumer_key = 'Consumer Key (API Key)'
config.consumer_secret = 'Consumer Secret (API Secret)'
config.access_token = 'Access Token'
config.access_token_secret = 'Access Token Secret'
end
# 1.指定ユーザーのツイートを取得する場合
@umaz
umaz / markov3.rb
Created February 5, 2019 12:39
マルコフ連鎖による文章生成
# coding: utf-8
require 'natto'
require 'csv'
# 分かち書きで出力
$nm = Natto::MeCab.new(dicdir: "/usr/lib/mecab/dic/mecab-ipadic-neologd", output_format_type: :wakati)
def mecab(txt)
parse = $nm.parse(txt)
parse = "BOS " + parse + "EOS"
return parse
@umaz
umaz / analysis.rb
Created February 5, 2019 12:38
Rubyによる形態素解析
require 'natto'
require 'csv'
# nattoオブジェクトの作成
# node_formatは%f[6]原形, %f[0]形態素
$nm = Natto::MeCab.new(dicdir: "/usr/lib/mecab/dic/mecab-ipadic-neologd", node_format:'%f[6]\t%f[0]\n', unk_format: '%M\t未知語\n',eos_format:"")
def mecab(txt)
parse = $nm.parse(txt)
split = parse.split(/\n/)
split.map! do |str|
str.split(/\t/)
# -*- coding: utf-8 -*-
require "date"
require "fileutils"
#定数の定義
BOARD_SIZE = 8 #盤のサイズ(8*8)
EMPTY = 0 #空きマス
BLACK = 1 #黒石のマス
WHITE = -1 #白石のマス
WALL = 2 #番兵(ひっくり返すときに使う)
@umaz
umaz / vs_com_othello.rb
Created February 9, 2017 08:12
com対戦できるオセロ
# -*- coding: utf-8 -*-
#定数の定義
MAX_TURN = 60 #最大ターン数
BOARD_SIZE = 8 #盤のサイズ(8*8)
EMPTY = 0 #空きマス
BLACK = 1 #黒石のマス
WHITE = -1 #白石のマス
WALL = 2 #番兵(ひっくり返すときに使う)