tokenizeDo​cumentでトーク​ン化したものをそのま​まSQL データベースに書き込​みする方法はありませ​んでしょうか?

조회 수: 1 (최근 30일)
寿人
寿人 2025년 2월 4일
댓글: 寿人 2025년 2월 5일
Text Analytics Toolbox の tokenizedDocumentでトークン化したものをSQLデータベースに書き込みしたいのですが適合するデータ型が存在しないという認識です。
代替策として下記のような手法をとりましたが、処理が回りくどいように思えます。
他に良い方法はありませんでしょうか。
例)
・トークン化した文章を文字列に変換(例えば '["Hello" "," "World" "."]')
・上記を、データ型=varcharで上記レコードをデータベースに書き込み
・文字列として'["Hello" "," "World" "."]'をデータベースから読込
・", [, ] 等の記号をreplaceで抹消した後に、再度tokenizedDocumentでトークン化

채택된 답변

Kojiro Saito
Kojiro Saito 2025년 2월 4일
편집: Kojiro Saito 2025년 2월 4일
tokenizedDocumentのデータ型はそのままデータベースに書き込めないので、stringやcharの文字列に変換する必要があります。また、データベースに書き込んだ後に読み込み直して句読点などを取り除くのはおっしゃるとおり回りくどいので、書き込む前に処理してみてはいかがでしょうか。
%% テキストの前処理
str = [
"An example of a short sentence."
"A second short sentence."];
documents = tokenizedDocument(str); % トークン化
newDocuments = removeStopWords(documents); % aやtheなどのストップワードの除去
newDocuments = erasePunctuation(newDocuments); % ,や.などの句読点の除去
outStr = string(joinWords(newDocuments)); % トークンをstringに変換
%% データベースへの書き込み
conn = database('sql_server', 'username', 'password'); % SQL Serverへの接続
tbl = table(outStr, VariableNames = "txt"); % テーブルに変換する
sqlwrite(conn, 'texttbl', tbl) % データをSQLのテーブルに書き込み
close(conn) % SQL Serverの接続をクローズ
  댓글 수: 1
寿人
寿人 2025년 2월 5일
ご回答ありがとうございました。記載頂いたコードで解決致しました。
ちなみに、私は"トークンをstringに変換"の部分で、下記のoutStr_1のように処理をしてしまっており、"[" や " の抹消処理を行っていたのですが、こちらも解消出来ました。
doc = "Hello, World.";
tokenized = tokenizedDocument(doc);
outStr_1 = mat2str(tokenized.string);
% outStr_1 is '["Hello" "," "World" "."]'
% "[", " をreplaceで抹消が必要
outStr_2 = string(joinWords(tokenized))
% outStr_2 is "Hello , World ."
% 不要な "[", " が発生しない。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Database Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!