Error: 'utf-8' codec can't decode byte 0xb0 in position 0: invalid start byte in google colab
Error: 'utf-8' codec can't decode byte 0xb0 in position 0: invalid start byte in google colab
import PyPDF4
from google.colab import files
files.upload()
fileReader = PyPDF4.PdfFileReader('ITC-1.pdf')
s=""
for i in range(2, fileReader.numPages):
s+=fileReader.getPage(i).extractText()
sentences = []
while s.find('.') != -1:
index = s.find('.')
sentences.append(s[:index])
s = s[index+1:]
text_ds = tf.data.TextLineDataset('ITC-1.pdf').filter(lambda x: tf.cast(tf.strings.length(x), bool))
vectorize_layer.adapt(text_ds.batch(1024))
inverse_vocab = vectorize_layer.get_vocabulary()
上面代码的最后一行显示了错误。我看了几个帖子来理解它的含义,但是 none 的解决方案似乎对我有用。我无法使用我的本地机器,因为我需要访问 GPU。请为此提出解决方法。谢谢!
PS:按照此处的代码 https://colab.research.google.com/github/tensorflow/docs/blob/master/site/en/tutorials/text/word2vec.ipynb#scrollTo=haJUNjSB60Kh,区别在于我读取文件的方式。如果有更好的方法,请告诉我!
import pdfplumber
from tensorflow.keras.layers.experimental import preprocessing
import tensorflow as tf
f = open('test.txt', 'w')
with pdfplumber.open(r'test.pdf') as pdf:
for page in pdf.pages:
f.write(page.extract_text())
f.close()
layer = preprocessing.TextVectorization()
text_ds = tf.data.TextLineDataset('test.txt').filter(lambda x: tf.cast(tf.strings.length(x), bool))
layer.adapt(text_ds.batch(1024))
inverse_vocab = layer.get_vocabulary()
你可以这样做:
- 使用 pdfplumber 阅读 pdf。
- 将页面写入文本文件。
- 然后使用该文本文件创建数据集。
import PyPDF4
from google.colab import files
files.upload()
fileReader = PyPDF4.PdfFileReader('ITC-1.pdf')
s=""
for i in range(2, fileReader.numPages):
s+=fileReader.getPage(i).extractText()
sentences = []
while s.find('.') != -1:
index = s.find('.')
sentences.append(s[:index])
s = s[index+1:]
text_ds = tf.data.TextLineDataset('ITC-1.pdf').filter(lambda x: tf.cast(tf.strings.length(x), bool))
vectorize_layer.adapt(text_ds.batch(1024))
inverse_vocab = vectorize_layer.get_vocabulary()
上面代码的最后一行显示了错误。我看了几个帖子来理解它的含义,但是 none 的解决方案似乎对我有用。我无法使用我的本地机器,因为我需要访问 GPU。请为此提出解决方法。谢谢!
PS:按照此处的代码 https://colab.research.google.com/github/tensorflow/docs/blob/master/site/en/tutorials/text/word2vec.ipynb#scrollTo=haJUNjSB60Kh,区别在于我读取文件的方式。如果有更好的方法,请告诉我!
import pdfplumber
from tensorflow.keras.layers.experimental import preprocessing
import tensorflow as tf
f = open('test.txt', 'w')
with pdfplumber.open(r'test.pdf') as pdf:
for page in pdf.pages:
f.write(page.extract_text())
f.close()
layer = preprocessing.TextVectorization()
text_ds = tf.data.TextLineDataset('test.txt').filter(lambda x: tf.cast(tf.strings.length(x), bool))
layer.adapt(text_ds.batch(1024))
inverse_vocab = layer.get_vocabulary()
你可以这样做:
- 使用 pdfplumber 阅读 pdf。
- 将页面写入文本文件。
- 然后使用该文本文件创建数据集。