リポジトリ: https://github.com/ray-d-song/guesslang-js
デモ: https://ray-d-song.github.io/guesslang-js/
最近、私は EchoRSS と呼ばれるプロジェクトに取り組んでいます。これは、サブスクリプション内の外部リンク (全文の読み取り、引用など) をインターセプトし、現在のページに直接表示するという非常に必要な機能です。
返された HTML コード ブロックには言語の注釈が失われている (または、元のコード ブロックの pre タグと code タグに言語の注釈が付けられていない) という問題があり、shiki や prism.js などのツールを使用して強調表示することができません。 。
コード言語を検出するための 3 つの解決策を見つけました:
1. 言語学者
これはサーバー上にデプロイされた Ruby プロジェクトであり、Github はそれを使用してリポジトリの言語構成を検出します。非常に高い精度が必要で、サーバー上で計算できる場合、これが最適なソリューションです。
2.hljs
highlight.js は非常に有名な Web コード強調表示ライブラリであり、自動コード検出を提供する唯一のライブラリでもあります。
原理は非常に単純で、言語のキーワードを列挙し、それらを 1 つずつテキストと照合し、最終的にどれが最も一致度が高いかを確認することです。
hljs には 4 つの問題があります。
- 非常に長いコード長が必要であり、ほとんどの言語では比較的良好な精度を達成するには少なくとも 300 文字が必要です。
- 言語を検出する部分は別個のモジュールではなく、パーサーとレンダリングと密接に結合されており、コードも非常に命令的であるため、有用な部分を抽出するのが困難です。
- 検出モジュールを抽出しないと、hljs を使用して強調表示するときにコードの元の形式 (改行とインデント) が失われます。
- 多くの定期的なマッチングが必要であり、パフォーマンスが低く、理由 2 のため、Web ワーカーでは実行できません。
3. 推測言語
guesslang は、tensorflow.js に基づく機械学習プロジェクトです。
Microsoftは2021年にこのプロジェクトをnode.jsに移植し、自動言語検出機能をvscodeに追加しました。
3 年前にベトナム人の hieplpvip もこのプロジェクトをブラウザに移植しましたが、次の 3 つの問題もあります。
- メモリリーク、メモリリーク...
- <script> のみをサポートします。 umd 形式を導入するためのタグ。esm をサポートせず、バンドルをサポートしません</script>
- 同様に、理由 2 により、Web Worker はサポートされていません
その男はこのプロジェクトを維持しておらず、3 月の esm をサポートするという特技リクエストには返答されていません。
そこで、hljs から検出モジュールを抽出し、guesslang-js をフォークして上記の問題を解決しました。最終的にはguesslang が勝ち、結果は次のようになります。
https://github.com/ray-d-song/guesslang-js
あまりにも話しすぎていると思うので、将来誰かが必要とするかもしれないので、投稿します。
tensorflow.js に詳しい方がいらっしゃいましたら、お勧めの学習教材を教えていただければ幸いです。Web GPU 計算にさらに修正して効率を上げたいと思っています。
以上がブラウザでコード言語を検出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

Pythonはデータサイエンスや機械学習により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、簡潔な構文とリッチライブラリエコシステムで知られており、データ分析とWeb開発に適しています。 2。JavaScriptは、フロントエンド開発の中核です。 node.jsはサーバー側のプログラミングをサポートしており、フルスタック開発に適しています。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境
