Google NotebookLMは、ユーザがアップロードした資料に対して、要約や質問に対する回答などを得ることができます。試しに、自分が2008年に執筆した博士論文のpdf(約100ページ)をアップロードしてみました。Google NotebookLMの興味深い機能の一つに、男女2人が、アップロードしたファイルの内容についての説明・感想を数分程度の会話を音声で聞くことができます。アップロードした資料が日本語であっても、今のところ音声は英語だけなのが残念な点ですが、再生できるようにしてみました。
Google NotebookLMが処理した結果の「要約」は、次のようになりました。Google NotebookLMの出力は、飾りのないテキストなので、多少読みやすくなるよう手動で体裁を整えました。
# ここからがseleniumのコード
# 問題サイト http://numberplace.net/
#
from selenium import webdriver
import time
import numpy as np
def disp(results):
msg=""
for r in results:
for y in range(9):
for x in range(9):
c = r._values[y][x]
c = str(c)
d = row2[y][x]
if d != 0:
msg=msg+'('+ c + ') '
else:
msg=msg+'-'+ c + '- '
msg=msg+"\n"
print(msg)
#---------------------------------------------------------------------------------------
# 処理開始
#---------------------------------------------------------------------------------------
# ブラウザをheadlessモード実行
print("\nブラウザを設定")
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
driver = webdriver.Chrome('chromedriver',options=options)
driver.implicitly_wait(2)
# サイトにアクセス
for num in range(5):
URL="http://numberplace.net/?no="+str(num+1)
print("サイトにアクセス開始:",URL)
driver.get(URL)
time.sleep(2)
lines= driver.page_source.splitlines()
for line in lines:
if 'toi' in line:
q = line.split(' ')[3].replace("'","").replace(";","")
q=list(q)
#print(q)
qi = [int(s) for s in q]
#print(qi)
q2 = np.array(qi)
row2=np.array(q2).reshape(-1,9).tolist()
grid = solver.Grid(row2)
print(grid)
results = solver.solve_all(grid)
disp(results)
break
print('Done.')
プログラム例
#include <windows.h>
#include<stdio.h>
int main()
{
HANDLE hComm;
int Status;
int n;
unsigned clockDivisor = 0;
hComm = CreateFile("COM1", //port name
GENERIC_READ | GENERIC_WRITE, //Read/Write
0, // No Sharing
NULL, // No Security
OPEN_EXISTING,// Open existing port only
0, // Non Overlapped I/O
NULL); // Null for Comm Devices
if (hComm == INVALID_HANDLE_VALUE)
printf("Error in opening serial port");
else {
printf("opening serial port successful");
for(n=0;n<100000;n++){ // ここのループでRF信号を放射
Status = EscapeCommFunction(hComm, SETRTS); // RTS ON
Status = EscapeCommFunction(hComm, CLRRTS); // RTS OFF
}
printf("Done...\n");
uSleep(5000000);
}
CloseHandle(hComm);//Closing the Serial Port
return 0;
}