我是tensorflow和机器学习的新手。我在编写一个tensorflow代码时遇到了问题,该代码的文本分类类似于我使用sklearn库尝试的文本分类。我在对数据集进行矢量化并将输入提供给tensorflow层时遇到了主要问题。
我确实记得在一次热编码标签中成功,但是前面的tensorflow层不接受创建的数组。请注意,我已经阅读了大多数关于stackoverflow的文字分类问题,但是它们过于具体或需要解决复杂的问题。我的问题案例太狭窄,需要非常基本的解决方案。
如果有人能告诉我类似于我的sklearn机器学习算法的步骤或张量流代码,那将是非常有帮助的。
使用的数据集位于:https://www.kaggle.com/virajgala/classifying-text
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.linear_model import SGDClassifier
from sklearn.pipeline import Pipeline
#Reading the csv dataset
df = pd.read_csv(('/Classifyimg_text.csv'), index_col=False).sample(frac=1)
#Splitting the dataset
train_data, test_data, train_labels, test_labels = train_test_split(df['sentence'], df['label'], test_size=0.2)
#Vectorization and Classification
streamline = Pipeline([('vect', TfidfVectorizer(max_features=int(1e8))),
('clf', SGDClassifier())]).fit(train_data, train_labels)
#Prediction
Output = streamline.predict(["This is my action to classify the text."])
这个问题有点广泛。也许您可以看看Tensorflow网站上发布的the tutorial,以进行二进制文本分类(正负),并尝试实现它。在此过程中,如果您遇到任何需要进一步解释的问题或概念,请搜索StackOverflow以查看是否有人提出了与您类似的问题。如果不是,请花点时间在these guidelines之后写一个问题,以便有能力回答的人将拥有他们需要的所有信息。我希望这些信息能使您有个好的开始,并欢迎您使用Stack Overflow!
如果您想获得开创性的成绩,我宁愿使用一些嵌入程序。自然语言是相当多维的。如今,有许多预训练的架构。因此,您只需将文本编码到一些潜在的空间,然后在这些功能上训练模型。一旦有了数字特征向量,应用某些重采样技术也变得容易得多。
我自己,我主要使用来自Facebook的LASER embedder。了解更多有关它的信息here。还有一个非官方的pypi程序包,可以正常工作。另外,您的模型将可以直接使用多种语言,这非常可爱。
[还有Google的(BERT)[https://github.com/google-research/bert],但预先训练的模型还很裸,因此您必须先将其进一步推开。