1. ホーム
  2. javascript

[解決済み] ブラウザの拡張機能を使ってGoogle Docからテキストを抽出し、セマンティック改行を保持したい

2022-03-14 05:33:42

質問

スペルチェッカーのように動作するブラウザ拡張機能(FirefoxとChrome)を持っています。この機能は inputtextarea であり、さらにほとんどの contenteditable 要素を使用します。しかし、Google Docsは \n は、視覚的な理由から、意味的な段落や文章を得ることが困難になっています。

例:本文

A Long Heading That Visually Wraps With No Period On The End
 
A sentence that runs long enough that it visually wraps in Google Docs and ends up with extra line breaks. Another shorter sentence.

Google Docs の DOM から抽出したものを JSON.stringify はこのように表示される。

"\"A Long Heading That Visually Wraps \\nWith No Period On The End \\n  \\nA sentence that runs long enough that it visually wraps in Google Docs and ends up with extra \\nline breaks. Another shorter sentence.\""

注意 \\n の前に With というのはセマンティックではないのですが、それなら \\n \\n の後に、セマンティックな見出しがあり、その後に \\n の前に line というのは、これもセマンティックではありません。

この具体的なケースでは、次のようになります。 text.replace(/\n \n/g, '!!!').replace(/\n/g, '').replace(/!!!/g, '\n\n') を使えば、(より)意味のあるテキストを返すことができます。

ただし、ダブル \n の後ではうまくいきません。

いかにもろいか、おわかりいただけると思います。

Google ドキュメント用の JavaScript DOM/API で、ドキュメントのクリーンなテキストを取得するために、余分な認証を必要としないものはありますか?ユーザーはすでにこの拡張機能をインストールしており、Google Drive用のアプリも認証しなければならないのは、実行不可能です。

または、JavaScriptのセンテントークナイザーはありますか?そうでなければ、NTLK/spaCyセンテントークナイザーを使用して、Python APIエンドポイントに生のテキストを出荷する必要がありそうです。

解決方法は?

データを抽出したい文書が公開されているかどうかによって、アプリケーションはクリーンデータを抽出するために認証を必要とする場合があります。

いずれにせよ Apps ScriptのDocument App または、さらに ドキュメントAPI は、クリーンなボディデータを取得し、さらにタイトルやサブタイトルを選択するための優れたオプションであり、単にドキュメントのテキストデータを抽出するだけでなく、さらなる機能性を提供します。

<ブロッククオート

注意事項 : であるドキュメントにアクセスしようとすると ではなく を使用する必要があります。 oAuth 2.0 . これは公開リソースではないので、このリソースにアクセスできるアカウントの認証情報を使用する必要があります。

お役に立てたでしょうか?他に何か必要なものや、理解できなかったことがあれば教えてください :)