背单词神器。 输入一个英语或双语文章的网址,本工具将自动提取文章中所有单词及其所在句子,对文章单词进行去重、统计汇总。你可以过滤筛选只显示出你不认识的单词。
This project provides a tool for learning English vocabulary, designed specifically for English learners, by expanding their vocabulary through reading English or bilingual articles. Users can automatically extract words from the learning articles, analyze word frequency, filter words, and track and record their mastery level.
This tool is developed with a focus on cross-platform compatibility and user convenience. It not only utilizes the high-performance Go language for core logic but also employs Flutter to ensure a smooth user interface experience and consistency across platforms. Whether users are learning on any device, they can ensure seamless synchronization of their learning progress.
With a focus on English learning needs, our goal is to create a simple, efficient, and user-friendly vocabulary learning aid. We welcome you to use this tool to accelerate your language learning journey.
Reading English articles is widely recognized as an effective way to expand vocabulary. According to data analysis, about 50% to 70% of the vocabulary in each English article is considered effective. Please note that punctuation marks, articles, prepositions, and other simple vocabulary (such as "a," "in," "on," "the," "I," "than," "you," "he," etc.) have been automatically excluded from the articles. We suggest you:
Continuous reading practice will directly reflect in the growth of your vocabulary. Over time, you will notice:
To effectively use this tool and enhance your English proficiency, this project recommends the following English reading resources. They provide rich bilingual content covering a wide range of topics suitable for learners of all levels:
The New York Times (Chinese-English Edition):Visit The New York Times Chinese-English Edition for high-quality bilingual reading materials. This will help improve your English comprehension and vocabulary.
The Economist China: The Economist China: English content tailored for Chinese readers, covering politics, economics, technology, and more. It's very beneficial for learners who want to gain in-depth understanding of global topics.
By utilizing these resources, you can not only expand your vocabulary in a targeted manner but also gain insights into different topics and background knowledge, comprehensively enhancing your English proficiency.
Please choose the correct compilation command according to your platform for compiling operations. You can select the Android
, Linux
, Windows
, or Web
version for installation.
go
language environment and flutter
development environment on your device.make
and zip
are installed on your device.Windows
environment, support for CGO
is required
exec: “gcc”: executable file not found in %PATH%
Installation Guide:
Android
users: Execute make build-android
in the terminal.Linux
users: Execute make build-linux
in the terminal.Windows
users: Execute make build-windows
in the terminal.Package Location: After compilation, the corresponding installation package files will be located in the "bin" folder of the project. Follow the standard installation process on your device to start using.
The web desktop version is a standalone web application that can be run in a browser without installation. Simply execute the binary file in the command line to open the web application in your browser.
It supports usage on platforms such as Linux, Windows, and macOS. You can deploy the web version to your local computer device or deploy it on a cloud server for use on any device.
make build-web-platform
in the terminal../bin/mywords-web-linux
on Linux../bin/mywords-web-windows.exe
on Windows../bin/mywords-web-macos
on MacOS.├── bin # Directory for compiled project files, .apk for Android, .deb for Linux, .zip for Windows, binary files for Web version (e.g., mywords-web-linux, mywords-web-windows.exe, mywords-web-macos)
├── mywords-go # Directory for Go core logic source code used to compile .so library
├── mywords-flutter # Directory for Flutter source code used to compile installation packages
├── makefile # Makefile for the project
├── readme.md # Project documentation
To fully utilize the word learning and lookup features of this tool, you may need to add dictionary libraries with detailed word definitions. As dictionary database files can be large, please follow these steps to add them:
http://vitogo.tpddns.cn:9081/_download/dict-ox10-v3.zip
and copy the link to your browser to download the dictionary data file.。vitogo-chat
[email protected]
The dictionary library should be a zip compressed file containing the following contents:
Structure Description:
data/
: Folder containing dictionary resource files such as images, sounds, etc.html/
: Folder containing html page files for word definitions, with filenames including the .html
suffix.*.css
, *.js
: Static resource files, can be placed in the root directory of the zip file or in the data folder.word_html_map.json
: JSON file containing the mapping between words and html filenames, in key-value pairs ("key" is the word, "value" is the html filename without the .html
suffix).After downloading the MDX/MDD format dictionary files and extracting the code files for dictionary resources, you need to follow these steps to create the dictionary database file:
word_html_map.json
::
# coding: utf-8
import json
import os
from readmdict import MDX
import os
import sys
def makeHtml(mdxPath):
mdx = MDX(mdxPath)
base_dir=os.path.dirname(mdxPath)
all_words_path=os.path.join(base_dir,"word_html_map.json")
html_dir=os.path.join(base_dir,"html")
print("html directory is: "+html_dir)
print("all words json file path: "+all_words_path)
os.makedirs(html_dir,exist_ok=True)
i=1
allWordsMap={}
items=mdx.items()
for key,value in items:
word=key.decode(encoding='utf-8')
# ### Fix the issue where some image tags are incorrectly placed within span tags in certain dictionary HTML files. If there are no such issues, you can comment out the replacement logic below.
htmlContent=value.decode().strip()
if htmlContent.startswith("<span id=")and htmlContent.endswith("</span>") and 'src="data:image/' in htmlContent:
htmlContent=htmlContent.replace("<span id=","<img id=")
htmlContent=htmlContent.replace("</span>","</img>")
htmlContent=htmlContent.replace('style="display:none"','style="max-width: 100%"')
value=htmlContent.encode()
# ##############
work_html_name = str(i)
allWordsMap[word]=work_html_name
html_path=os.path.join(html_dir,work_html_name+".html")
df = open(html_path, 'wb')
df.write(value)
df.close()
i+=1
b = json.dumps(allWordsMap,sort_keys=True,separators=None,indent=" ",ensure_ascii=False,)
f2 = open(all_words_path, 'w')
f2.write(b)
f2.close()
print(i,"exit with 0")
if __name__ == '__main__':
# python extract_html.py <mdx_path>
mdx_path=sys.argv[1]
makeHtml(mdx_path)
python readmdict.py -x <.mdd file>
zip -q -r -9 mydict.zip data/ html/ *.css *.js word_html_map.json
Load local dictionary database file -- start parsing
Please follow the above steps to ensure that the dictionary data is correctly added to your learning tool, so that you can refer to detailed definitions of words and phrases during your learning process, thereby effectively improving your language skills.
We sincerely thank the following individuals and organizations for their support and contributions to this project:
Additionally, we would like to thank all friends who have quietly supported this project behind the scenes. Your encouragement and feedback are the sources of the project's continuous development.