当前位置: 首页 > wzjs >正文

哈尔滨网站空间网站运营需要多少钱

哈尔滨网站空间,网站运营需要多少钱,做网站页面该建多大的画布,如何给公司做自己的网站文章目录 NLP中的同义词替换及我踩的坑示例Python代码示例nltk 安装设置NLTK_DATA环境变量词库下载 中途跳的一个坑 NLP中的同义词替换及我踩的坑 同义词替换是一种常用的文本数据增强方法。其核心思想是将句子中的某些词语用其同义词进行替换,从而生成语义相近但表…

文章目录

    • NLP中的同义词替换及我踩的坑
      • 示例
      • Python代码示例
        • nltk 安装
        • 设置`NLTK_DATA`环境变量
        • 词库下载
      • 中途跳的一个坑

NLP中的同义词替换及我踩的坑

同义词替换是一种常用的文本数据增强方法。其核心思想是将句子中的某些词语用其同义词进行替换,从而生成语义相近但表达不同的新句子。这种方法能够增加训练数据的多样性,提高模型对不同表达方式的泛化能力。

示例

原句:

机器学习可以提升数据分析的效率。

同义词替换后:

机器学习能够提高数据分析的效能。

Python代码示例

下面是一个简单的同义词替换实现,使用nltk库和wordnet词库(语料库):

nltk 安装
uv add nltk
设置NLTK_DATA环境变量

NLTK_DATA

词库下载

使用nltk.download()方法,会弹出对话框,选择要下载的词库,下载的数据将存储到前文NLTK_DATA环境变量指定的位置。下载完成后,代码会从该目录查找词库。

import nltknltk.download()
showing info https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/index.xmlTrue

例如,这里我们选择了下载Stopwords

download

当然,我们也可以指定语料库名称下载:

nltk.download('wordnet')
nltk.download('punkt_tab')
[nltk_data] Downloading package wordnet to
[nltk_data]     C:\Users\yeshe\AppData\Roaming\nltk_data...
[nltk_data] Downloading package punkt_tab to
[nltk_data]     C:\Users\yeshe\AppData\Roaming\nltk_data...
[nltk_data]   Unzipping tokenizers\punkt_tab.zip.True
import random
from nltk.corpus import wordnet
from nltk.tokenize import word_tokenizedef get_synonyms(word):synonyms = []for syn in wordnet.synsets(word):for lemma in syn.lemmas():synonyms.append(lemma.name())return synonymsdef synonym_replacement(sentence, n=1):words = word_tokenize(sentence)new_words = words.copy()candidates = [word for word in words if get_synonyms(word)]random.shuffle(candidates)num_replaced = 0for word in candidates:synonyms = get_synonyms(word)if synonyms:synonym = random.choice(synonyms)new_words = [synonym if w == word else w for w in new_words]num_replaced += 1if num_replaced >= n:breakreturn ' '.join(new_words)# 示例
sentence = "Machine learning can improve the efficiency of data analysis."
augmented_sentence = synonym_replacement(sentence)
print(augmented_sentence)
Machine learning can meliorate the efficiency of data analysis .

对于中文的同义词替换,wordnet就有点鞭长莫及了,这时,我们需要jiebasynonyms的支持:

uv add synonyms jieba
import jieba
import synonyms
import random
from nltk.corpus import wordnet as wn  # 备用方案(英文WordNet)# 加载中文停用词表(可选,避免替换无意义词)
stopwords = set(["的", "了", "可以", "。"])def get_chinese_synonyms(word):"""获取中文词语的同义词列表(优先使用Synonyms库)"""try:# 使用Synonyms获取同义词(返回格式:[同义词列表, 相似度分数])syns, _ = synonyms.nearby(word)# 过滤低相似度词(阈值>0.7)并去重valid_syns = list(set([s for s in syns if synonyms.compare(word, s) > 0.7]))return valid_synsexcept Exception as e:# 备用方案:使用WordNet(需确保词语有英文映射)en_word = word  # 实际应用中可能需要中英词典映射synsets = wn.synsets(en_word)return [lemma.name() for synset in synsets for lemma in synset.lemmas()]return []def synonym_replacement_chinese(sentence):"""对中文句子进行同义词替换"""words = jieba.lcut(sentence)  # 精确分词new_words = words.copy()# 筛选可替换词:非停用词且非标点candidates = [i for i, w in enumerate(words) if w not in stopwords and len(w) > 1]random.shuffle(candidates)  # 随机选择替换位置replaced = Falsefor idx in candidates:word = words[idx]syns = get_chinese_synonyms(word)if syns and word in syns:syns.remove(word)  # 移除原词if syns:new_words[idx] = random.choice(syns)  # 随机选一个同义词replaced = Truebreak  # 每次只替换一个词(避免过度失真)return "".join(new_words) if replaced else sentence# 示例调用
original_sentence = "机器学习可以提升数据分析的效率。"
# 首次运行需安装依赖:pip install jieba synonyms nltk
augmented_sentence = synonym_replacement_chinese(original_sentence)
print("原句:", original_sentence)
print("替换后:", augmented_sentence)
原句: 机器学习可以提升数据分析的效率。
替换后: 机器学习可以提升数据处理的效率。

中途跳的一个坑

上述代码中import synonyms报如下错误:

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
Cell In[21], line 21 import jieba
----> 2 import synonyms3 import random4 from nltk.corpus import wordnet as wn  # 备用方案(英文WordNet)File d:\Source\Repos\Visual Studio Code\MachineLearning-notes\.venv\Lib\site-packages\synonyms\synonyms.py:4745 import gzip46 import shutil
---> 47 from .word2vec import KeyedVectors48 from .utils import any2utf849 from .utils import any2unicodeImportError: attempted relative import with no known parent package

为解决这个问题,我连续踩坑:

  • 补充words.vector.gz文件

好不容易在网上找到了处理办法,但也没有效果。

下载words.vector.gz,并存放到synonymsdata目录下,我用的uv做包管理,本地是这个路径:“.venv\Lib\site-packages\synonyms\data”。

然而,并没什么用,错误依旧。

  • 安装word2vec

Windows 上安装word2vec需要把gcc放到PATH环境变量,否则会安装失败。

$env:PATH += ";D:\tools\mingw64\bin"
uv add word2vec

实测也没有用,问题不是出在这,而是提示所说的相对路径导入出错,且还是synonyms包里synonyms.py文件的问题,于是修改带.的那几个from ... import ...语句:

from synonyms.word2vec import KeyedVectors
from synonyms.utils import any2utf8
from synonyms.utils import any2unicode
from synonyms.utils import sigmoid
from synonyms.utils import cosine
from synonyms.utils import is_digit

问题解决。

http://www.dtcms.com/wzjs/528430.html

相关文章:

  • 云平台网站建设网推是干什么的
  • 注册过什么网站百度关键词搜索量排行
  • vs2012 网站开发如何查询域名注册人信息
  • 沈阳网站备案查询青岛网站
  • 网站建设微信营销公司怎样做网站推广
  • wordpress重置密码云南seo简单整站优化
  • 江山做网站阳江网站建设
  • 衡阳做网站优化南京seo排名优化公司
  • 做灯箱片的设计网站百度蜘蛛池自动收录seo
  • 嘉兴 网站 制作seo点击软件排名优化
  • 佛山的网站建设公司做百度推广的网络公司广州
  • 一个做礼品的网站外贸网站建设设计方案
  • 广南网站建设培训班招生方案有哪些
  • oss cdn wordpress网站优化推广培训
  • 王爷站住重生嫡女要强嫁怎么做网站关键词优化
  • 柳州做网站哪家好网络营销的工作内容包括哪些
  • 网站友情链接怎么做百度sem认证
  • 软装潢.企业网站建设网络营销的六大特征
  • 购物网站名字百度电话
  • 尼尔的h版是那个网站做的建站系统软件有哪些
  • 网站建设联系电话杭州seo软件
  • .net php开发网站开发目前最流行的拓客方法
  • 广州外包公司都有哪些就业seo好还是sem
  • 惠州企业建站程序软文编辑
  • 百度h5发布台州seo网站排名优化
  • 如何自己做网站优化深圳电子网络推广查询
  • 网站建设步和客户沟通国内新闻摘抄2022年
  • 新疆电商网站建设市场营销策划书范文5篇精选
  • 国外做任务的网站优化大师免费版
  • 多用户网站制作关键词网络推广企业